2013-12-11 60 views
0

我無法真正表達它,但我需要的是一個查詢,它將允許我從表A的列中獲取所有元素這與從表B.這裏的collumn所有值相關聯的是一個例子: 即使世界包含餐館和食品他們所擁有像這樣的表:MySql - 獲取與另一列中所有值關聯的列的值

restaurant || food 
======================== 
     r1 || f1 
     r1 || f2 
     r1 || f3 
     r2 || f1 
     r3 || f3 
     r3 || f4 

然後那裏有此表僅至極包含列食品:

foods 
====== 
f1 
f2 
f3 

我想要的是從第二張桌子上獲得所有食物的所有食物的名稱。在這個例子中,結果會是這樣:

restaurant 
========== 
r1 

我都試過,但我不是很有經驗,我只知道如何讓所有有出現在seccond表食品的餐館。

任何幫助將aprecciated感謝;)

回答

0

SQL Fiddle

SELECT restaurant FROM table1 
GROUP BY restaurant 
HAVING COUNT(DISTINCT food)=3; 

與你有不同的食品數量替換3。 或者,如果你不想來算手動

SELECT restaurant FROM table1 
GROUP BY restaurant 
HAVING COUNT(DISTINCT food)=(SELECT COUNT(DISTINCT foods) FROM table2); 

SQL Fiddle

+0

它的工作的感謝!我剛剛添加了「哪裏食物(選擇表2中的食物)」之前,並解決了:)謝謝你;) –

0

您可以在狀態檢查

Select restaurant from table1 where food in (select foods from table2) 

如果你想從第二個表中與特定的食物來檢查使用IN,更改查詢如下

Select restaurant from table1 where food = 'f1' 
0

您可以使用內部聯接太:像這樣:

select a.restaurant from table1 a inner join table2 b on(a.food=b.food)

相關問題