我有两张桌子。我想从表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
)

或者,您可以使用joindistinct
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/

10-11 05:49