我们有一张用于存储客户和物品的表。我们需要能够找到购买了一件商品而没有购买另一件商品的客户:
customer item
Sally 1
Sally 2
Sally 3
John 1
John 2
Paul 2
Paul 3
Run Code Online (Sandbox Code Playgroud)
我们想找到购买“1”而不是“3”的用户。在这种情况下,我们只想要“约翰”。
Twi*_*les 10
不,自连接不会真正有帮助,但如果您的数据库系统有一个 EXCEPT 运算符(或类似的东西,在 Oracle 中它被称为 MINUS)它会。
以下是获得结果的方法:
SELECT customer FROM Sales
WHERE item = 1
AND customer NOT IN (SELECT customer FROM Sales WHERE item = 3)
Run Code Online (Sandbox Code Playgroud)
如果您有 EXCEPT 运算符:
SELECT customer FROM Sales WHERE item = 1
EXCEPT
SELECT customer FROM Sales WHERE item = 3
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1037 次 |
最近记录: |