sql选择两个带有foregin键的表

时间:2017-06-11 17:47:21

标签: mysql sql join foreign-keys

我想将两个表合并为一个。 第一个是:

ID    code_1      code_2
==============================
1      XXX        YYY
2      ZZZ        YYY
3      YYY        ZZZ

第二个是:

CODE    Name
==============
XXX     Name_1
YYY     Name_2
ZZZ     Name_3

有一个FK code_1 = CODE和code_2 = CODE 我想创建一个只有Name_1和Name_2的表(通过code_1或code_2) 但不只是一个smiple查询,而不是名称是XXX或YYY,而是名称来自FK。像这样:

ID   code_1    code_2
=======================
1    Name_1    Name_2
3    Name_2    Name_1

我试过了,但我不知道如何用Name_1替换XXX:

SELECT Table1.ID, Table1.code_1, Table1.code2 FROM MyDB.Table1
WHERE (code_1=XXX and code_2 =YYY) or (code_2=XXX and code_1 =YYY)

非常感谢!

1 个答案:

答案 0 :(得分:0)

要获得包含两个表的结果,您可以使用:

SELECT id FROM table1
INNER JOIN table2 ON CODE = code_1
UNION ALL
SELECT table2.name Name1
FROM table2
INNER JOIN table1 ON CODE = code_1
UNION ALL
SELECT table2.name Name2
FROM table2
INNER JOIN table1 ON CODE = code_2;
  

以上未经过测试。如果有帮助,请告诉我。

有关MySQL的更多信息,您可以查看:https://www.w3schools.com/sql/

  

<强>已更新