我有以下关系方案:
我想在SQL中编写一个查询来查找所有客户的客户ID,这些客户的所有订单只有一个商店,并且该商店不能是“Toys R Us”。
我是SQL的新手,不知道如何解决这个问题。任何帮助将不胜感激。
答案 0 :(得分:0)
这可能会对你有所帮助。只需按照您的要求替换表名和列名。
select a.customerid
from (
select or.customerid,st.storeid,count(*) count
from Order or, Onlines on, Store st
where or.orderid=on.orderid and on.storeid=st.storeid and st.store_name!='Toy R Us'
group by or.customerid,st.storeid) a
where a.count=1;
答案 1 :(得分:0)
您可以为此
使用exists子句; With cte as(
Select distinct name , c.[Customer ID],s.[store Id]
From customer c join order o
On c.[Customer ID]=o.[Customer ID]
Join olines l
On o.[order ID]=l.[order ID]
Join store s
On s.[store Id]=l.[store Id] and not s.[store_name]='Toys R Us')
Select *
from cte c1
where
not exists(
Select 1
from cte c2
where c2.[Customer ID]=c1.[Customer ID] and c2.[store Id]=<>c1.[store Id]
)