【发布时间】:2018-09-07 13:26:22
【问题描述】:
我在尝试查询这个时有点卡住: 查找与客户编号 250 相同的所有客户
数据库架构:
Customers(
customerNumber INTEGER, PRIMARY KEY
);
Orders(
orderNumber INTEGER, PRIMARY KEY
customerNumber INTEGER NOT NULL,
FOREIGN KEY (customerNumber) REFERENCES Customers
);
OrderDetails (
orderNumber INTEGER NOT NULL,
productCode TEXT NOT NULL,
PRIMARY KEY (orderNumber, productCode),
FOREIGN KEY (productCode) REFERENCES Products
);
我想出了查询:
select DISTINCT customerNumber
FROM Orders Natural
JOIN OrderDetails
WHERE productCode NOT IN (
select productCode
FROM Orders NATURAL JOIN OrderDetails
WHERE customerNumber = 219
)
order by customerNumber;
会是正确的,但它什么也没返回,所以很明显我误解了一些东西。
【问题讨论】:
-
250 还是 219 ...?
-
对不起250,混合了一些数字,查询中应该是250
-
这个选择查询让我觉得除了 customerNumber = 250 之外还有更多规则
-
所以如果客户 250 订购了产品 A、B 和 C,客户 300 订购了 A 和 B,客户 400 订购了 A、B 和 C,客户 500 订购了 A、B、C 和D. 你想展示哪些客户?是关于至少一种产品的共同点吗?所有 250 的产品?完全相同的产品?
-
一旦有有用的答案,请不要破坏/删除您的问题,它可能对未来的访问者有用。