我有两张桌子。我想从表1中获取uid,其中两个表的主题列都匹配。
Table 1
UID SubjectA
1 Cows
2 Chickens
3 Mice
4 Rabbits
5 Cows
Table 2
Name SubjectB
A Cows
B Cows
C Cows
D Cows
E Mice
预期结果*
获取uid:1、3、5。
我不太懂加入和联合。两张桌子好像合在一起。做这件事的正确方法是什么?
最佳答案
有几种方法可以做到。。。
首先,我建议使用exists
:
SELECT
UID
FROM
Table1
WHERE EXISTS (
SELECT 1
FROM Table2
WHERE SubjectB = SubjectA
)
或者,您可以使用
join
和distinct
:SELECT DISTINCT
UID
FROM
Table1 JOIN
Table2 ON SubjectB = SubjectA
最后,您可以使用
in
:SELECT
UID
FROM
Table1
WHERE SubjectA IN (
SELECT SubjectB
FROM Table2
)
关于mysql - MYSQL仅在该表的列值与另一表的列值匹配的情况下,才如何从该表中选择数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9674590/