2017-01-21 25 views
0

我需要一些有關MySQL中子查詢的特定問題的幫助。這是我的問題的一個縮影:在MySQL中使用子查詢

我有表1和2,其中表1有一個名爲「SupplyID」的列,它對應於表2的「ID」。我需要從單一供應商處獲得一份清單。

我試着用這一點,但沒有奏效:

select name 
from item 
where SupplyID exists (
    select * 
    from SupplyID 
    where SupplyID = ID 
); 
+0

您需要[這](http://www.w3schools.com/sql/sql_join_inner.asp),如果你想顯示它一張桌子 –

回答

1

試試這個:

select name from item i where exists (select * from table2 t where i.SupplyID = t.ID); 
+0

謝謝!這工作,但如果我需要獲得一個單一的ID呢?有沒有更容易的解決方案比需要在命令中有ID? – GossetStudent

2

假設你的表名爲Table 1和Table你 你可以使用一個內部聯接

select distinct t1.name 
from ybale as t1 
inner join table2 as t2 on t1.ID = t2.SupplyID 
0

我的回答更像是scaisEdge在這裏回答的,但我強烈建議您不要他與LEFT JOIN。如果你想選擇只有一個ID,例如ID = 10

SELECT T1.name 
FROM item AS T1 
LEFT JOIN SupplyID AS T2 ON T2.SupplyID=T1.ID 
WHERE T1.ID = 10