我有两张 table 。我想从表 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。
我不太了解联接和并集。两者似乎都结合了两张 table 。这样做的正确方法是什么?
最佳答案
有几种方法可以做到这一点...
首先,我建议使用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 如何仅从一个表中选择数据,其中该表中的列值与另一表中的列值匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9674590/