【问题标题】:MYSQL: How to JOIN two tables on the same query referencing the same table twiceMYSQL:如何在同一个查询中加入两个表两次引用同一个表
【发布时间】:2017-07-13 14:08:45
【问题描述】:

我有两张桌子。我正在尝试加入下面的示例两个表,表 1 引用表 2 两次。例如,如果我查看表 1:组 2 和成员 7,它应该查找表 2 中的 ID 并给我一个输出:

Group Members Name   Name
  2      7     Blue   Dog

表 1

Group  Members
 2       7
 3       8
 5       10

表 2

 ID     Name
 1      Green
 2      Blue
 3      Yellow
 4      Orange
 5      Red
 6      Elephant
 7      Dog
 8      Cat
 9      Chicken
 10     Mouse

有什么建议吗?谢谢

【问题讨论】:

  • 请详细说明您的问题。这看起来不是一个非常明智的问题。尝试发布您尝试过但无效的查询,

标签: mysql sql join


【解决方案1】:
SELECT
  Table_1.*,
  g.Name,
  m.Name
FROM
  Table_1
  INNER JOIN Table_2 AS g ON Table_1.Group=g.ID
  INNER JOIN Table_2 AS m ON Table_1.Group=m.ID
WHERE
  Table_1.Group=2
  AND Table_1.Member=7

【讨论】:

  • 谢谢尤金。这行得通!也感谢您编辑我的帖子,使其看起来更具可读性
【解决方案2】:

在不同的列上与表 2 连接两次。

SELECT t1.*, t2.name AS group_name, t3.name AS member_name
FROM Table1 AS t1
JOIN Table2 AS t2 ON t1.group = t2.id
JOIN Table2 AS t3 ON t1.members = t3.id

【讨论】:

    【解决方案3】:

    很难从该描述中准确说出您需要什么,但给表起别名可能就是您需要的。它的工作原理是这样的:

    SELECT t1.x, t2_1.y, t2_2.z
    FROM table1 AS t1
    JOIN table2 AS t2_1 ON t1.whatever = t2_1.whatever
    JOIN table2 AS t2_2 ON t1.whatever = t2_2.whatever
    ...
    

    【讨论】:

      猜你喜欢
      • 2013-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 2013-12-20
      • 1970-01-01
      • 2016-08-21
      相关资源
      最近更新 更多