SQL:如何匹配具有多个id字段的两个表

时间:2015-08-15 16:48:00

标签: mysql

假设我有一个表A,其结构看起来像

MID  NAME
 98  hello
 99  world

表B的结构是

FID ID1 ID2
1    99  99
2    99  98
3    98  99

我尝试将ID1和ID2与MID匹配以获得结果,如

1 world   world
2 world  hello
3 hello  world

我该如何编写SQL?提前致谢!我真的很感谢你的帮助!

2 个答案:

答案 0 :(得分:0)

您可以连接同一个表(TableA)两次,并为其指定别名(a1,a2)。然后查询如下所示:

SELECT
  b.FID,
  a1.NAME,
  a2.NAME
from TableB b
INNER JOIN TableA a1 ON a1.MID = b.ID1
INNER JOIN TableA a2 ON a2.MID = b.ID2

答案 1 :(得分:0)

您可以查询表b并将表连接两次,每个id一次:

SELECT b.fid, a1.name, a2.name
FROM   b
JOIN   a AS a1 ON b.id1 = a1.mid
JOIN   a AS a2 ON b.id2 = a2.mid