【问题标题】:Find the same value in three Colomns with same name but in different tables在三个具有相同名称但在不同表中的列中找到相同的值
【发布时间】:2017-01-17 00:10:13
【问题描述】:

我目前正在制作一个 android 应用程序,它使用提要来显示用户所做的状态。我在同一个数据库中有三个表,每个表都有用户名作为主键列或唯一键列,但每个表都有与该用户相关的不同信息。

比如第一个表===>> tbl_users:

  • 用户名
  • fname(名字)
  • mname(中间名)
  • lname(姓氏)
  • 等。 (名单很长)

第二张表===>> tbl_userprofilepictures:

  • 头像ID
  • 用户名
  • 个人资料图片路径

第三张表===>> tbl_user_feed:

  • postID(状态的唯一 ID)
  • 用户名
  • 状态
  • imagepostpath(上传状态图片的路径)
  • 时间戳

我希望能够在所有三个表格中搜索用户名,并在他们的帖子中显示与他们相关的相关信息。例如,tbl_users 需要他们的姓名和姓氏,tbl_userprofilepictures 需要他们的 profilepicturepath 以及 tbl_user_feed 的状态、imagepostpath 和时间戳。

我需要在单独的 PHP 文件中还是在应用程序本身中执行此操作? PS我对PHP相当陌生,所以请随时帮助兄弟。

愿原力与你同在。

【问题讨论】:

  • 提示:JOIN 是要走的路。
  • @GordonLinoff 嘿,谢谢你的回复,你能解释一下 JOIN 吗?就像我说的,我在 PHP 方面非常新手:3
  • 标准化你的数据库!这将使它更容易并防止很多问题。
  • @XxGoliathusxX 这听起来很糟糕,但首先什么是正常化,其次,我该怎么做? c:
  • @Brian 规范化是使用数据库时最重要的事情之一。它可以防止异常、不一致和冗余,并使您的 sql 数据库更容易使用。这是一个可以帮助您的链接:studytonight.com/dbms/database-normalization 我推荐的前三个步骤。它非常简单,您很快就会发现它很有帮助。祝你好运;)

标签: php mysql sql


【解决方案1】:

您可以使用JOIN。

JOIN 是什么?

SQL JOIN 子句用于根据它们之间的公共字段组合来自两个或多个表的行。

来源:w3schools.com Joins

这是我根据您给出的表格制作的示例。对于这些,我们的常用字段是username。

SELECT CONCAT('a.fname', 'a.lname'), b.profilepictureID, c.status, c.imagepostpath, c.timestamp 
FROM 
tbl_users as a
LEFT JOIN tbl_userprofilepictures as b ON b.username = a.username
LEFT JOIN tbl_user_feed as c ON c.username = a.username

使用Alias (table_name as custom_name) 是加入表格的好习惯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-17
    • 2020-12-06
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    相关资源
    最近更新 更多