我无法真正表达得很清楚,但我需要的是一个查询,它允许我从表A的列中获取与表B的列中的所有值相关联的所有元素。这是一个示例: 这是一张包含餐馆和食物的桌子,如下所示:
restaurant || food
========================
r1 || f1
r1 || f2
r1 || f3
r2 || f1
r3 || f3
r3 || f4
然后这张桌子里只包含一列食物:
foods
======
f1
f2
f3
我想要的是获得所有餐厅的名称,这些餐馆都有第二张桌子上的所有食物。在这个例子中,结果将是:
restaurant
==========
r1
我已经尝试但我不是很有经验,我只知道如何让所有餐馆都有食物出现在第二张桌子里。
任何帮助都会得到帮助;)
答案 0 :(得分:0)
您可以在where条件中使用IN
来检查
Select restaurant from table1 where food in (select foods from table2)
如果您想查看第二个表格中的特定食物,请按以下步骤更改查询
Select restaurant from table1 where food = 'f1'
答案 1 :(得分:0)
您也可以使用内部联接:像这样:
select a.restaurant from table1 a inner join table2 b on(a.food=b.food)
答案 2 :(得分:0)
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 );