我们为这个名为" Orders":
的表提供了这个模式CREATE TABLE country(
orderID VARCHAR,
customerID INTEGER,
shipperID VARCHAR
)
以下是该表的可视化,取自w3school的SQL教程:
我想获取每个shipperID至少订购一次的customerID。
这样做的一种方法是认识到只有三个独特的shipperID(1,2和3),因此我们可以执行三个笛卡尔积,并通过这种方式识别customerID。但是,我想以这样的方式编写查询,以至于许多shipperID的独特性并不重要。
使用关系代数,这可以通过除法相当简单地完成。有没有一种简单的方法可以在SQL中进行这样的查询?
答案 0 :(得分:1)
可以是你可以使用..拥有和子选择
select CustomerID
from Orders
group by CustomerID
having count(distinct ShipperID) = ( select count(distinc ShipperID) from Orders)
分组给出每个CustomerID的shipperID号码。检查这是否等于ShipperID的总和