这是我的问题。
我有两张桌子,
表1 -
id | Name | Code
1 | test | 4
2 | test | 5
3 | test4| 6
4 | test4| 7
5 | test | 8
6 | test | 9
表2 -
id | Code
1 | 4
2 | 5
3 | 6
4 | 7
5 | 8
6 | 9
这两个表中的代码列是相同的,我正在尝试的是,我正在使用代码来自Table2而我正在选择与它的其他表。例如
SELECT * FROM Table2 LEFT JOIN Table1.Code = Table2.Code WHERE Table2.Code = 4
,没关系,现在我从同一个代码的两个表中得到结果,但现在,从那时我有Table1,我想得到所有的行具有相同的姓名。我想要的预期结果是
id | Name | Code
1 | test | 4
2 | test | 5
5 | test | 8
6 | test | 9
答案 0 :(得分:2)
您可以尝试类似
的内容SELECT *
FROm Table1 t1
WHERE Name IN (
SELECT t1.Name
FROM Table1 t1 INNER JOIN
(
SELECT id,
Code
FROM Table2
WHERE Table2.Code = 4
) t2 ON t1.id = t2.id
AND t1.Code = t2.Code
)
甚至
SELECT *
FROm Table1 t1
WHERE Name IN (
SELECT t1.Name
FROM Table2 t2 INNER JOIN
Table1 t1 ON t2.id = t1.id
AND t2.Code = t1.Code
WHERE Table2.Code = 4
)