簡體   English   中英

MYSQL僅在該表的列值與另一表的列值匹配的情況下,才如何從該表中選擇數據?

[英]MYSQL How do I select data from one table only where column values from that table match the column values of another 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。

我不太了解聯接和工會。 兩者似乎都結合了兩個表。 正確的做法是什么?

做這件事有很多種方法...

首先,我建議使用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
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM