假设我有一张 table :
Restaurant locations:
RESTAURANT_NO | RESTAURANT_LOCATION
-----------------------------------
1 | City A
1 | City B
2 | City A
2 | City B
2 | City C
3 | City C
4 | City A
4 | City B
我如何能够将它们组合在一起并且只选择
RESTAURANT_NO 在 C 市没有位置?
使用这个例子,我想返回:
RESTAURANT_NO
-------------
1
4
由于 RESTAURANT_NO 2 和 3 都在 C 市有位置。
我不知道如何将 RESTAURANT_NO 组合在一起,同时还尝试仅选择满足此要求的组。
编辑:我得到了这个工作。
但是,还有最后一件事我仍然无法弄清楚。
下表列出了人员的 ID 号以及他们工作过的城市:
PERSON_NO | CITY_NAME
---------------------
1 | City A
2 | City B
3 | City A
3 | City B
3 | City C
4 | City A
4 | City B
4 | City C
我怎么能得到所有人的PERSON_NO
谁住在所有三个城市,A、B 和 C?
我想回来
PERSON_NO
---------
3
4
再次感谢。我没有太多的 SQL 经验,所以我不知道该怎么做。
最佳答案
单程:
SELECT RESTAURANT_NO FROM restaurant WHERE RESTAURANT_NO NOT IN
(SELECT RESTAURANT_NO FROM restaurant WHERE RESTAURANT_LOCATION = 'City C')
关于SQL:如何只选择不包含特定值的组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9355241/