【问题标题】:Can you help me to formulate a SQL query to join 3 tables? [closed]你能帮我制定一个 SQL 查询来连接 3 个表吗? [关闭]
【发布时间】:2012-08-28 05:21:37
【问题描述】:

我不知道该怎么做,所以我在这里问它......

我的数据库中有 3 个表,其结构如下..

table:contact ----- 行:contact_id, firstname

table:groups ------rows: group_id, group_name

table:groupmembership ------ 行:contact_id, group_id

“group_membership”表中“contact_id”和“group_id”之间的关联反映了特定组中的联系人。

我需要做的是获取一个contact_id,并在下拉列表中显示他是哪些组的成员。我最终将使用此下拉列表将 group_id 发布到显示组信息的页面。

任何人都可以帮助我如何制定 MySQL 查询吗?

【问题讨论】:

  • 您在制定查询时遇到了什么问题?您在哪一部分需要帮助?
  • 这个问题有很多重复。其中之一是:stackoverflow.com/questions/5777760/mysql-join-3-tables?rq=1
  • 那个链接没有回答我的问题。我已经阅读了那个,以及许多其他的解释。我认为我的问题得到了很好的解释,不过我会尽量说得更清楚......表“group_membership”充当了将其他两个表中的数据关联起来的信息中心。我需要做的是从“group_membership”中获取数据,并从其他两个表中收集“group_name”和“contact_name”。我想现在这无关紧要,因为我的问题被认为是“不是一个真正的问题”。大声笑

标签: php mysql


【解决方案1】:

如果你想通过 user_id 选择:

SELECT group_name, group_id
FROM groupmembership gm
INNER JOIN groups g ON g.group_id = gm.group_id
WHERE gm.contact_id = 4711

如果你想按用户名选择:

SELECT group_name, group_id
FROM groupmembership gm
INNER JOIN groups g ON g.group_id = gm.group_id
INNER JOIN contact c ON c.contact_id = gm.contact_id
WHERE c.firstname LIKE 'TheHe';

【讨论】:

    猜你喜欢
    • 2019-05-31
    • 2017-06-09
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    • 2015-06-09
    相关资源
    最近更新 更多