我必须找到只销售一种特定产品的商店
我必须加入 3 个表才能获取所有信息 这是连接表的样子
Store | Product |
----------------
A | Juice | Mon
A | Milk | Mon
A | Milk | Tue
B | Juice | Mon
B | Beer | Tue
B | Milk | Wed
B | Beer | Thu
C | Beer | Mon
D | Beer | Thu
D | Beer | Fri
我想要只销售啤酒的商店,在这种情况下显然是 C 和 D。 如何编写可以过滤掉这些商店的查询?
答案 0 :(得分:0)
您可以使用聚合:
select store
from t
group by store
having min(product) = max(product);
答案 1 :(得分:0)
首先按店铺分组,然后查看店铺销售的产品数量。
SELECT Store, Count(Product) AS pcount
FROM joined_table
GROUP BY Store
HAVING pcount=1;
答案 2 :(得分:0)
您可以在 HAVING
子句中设置条件:
SELECT store
FROM (<your query here>) t
GROUP BY store
HAVING SUM(product <> 'beer') = 0;
条件 SUM(product <> 'beer') = 0
过滤掉所有销售除 'beer'
以外的任何商品的商店。