我已经为此奋斗了几个小时,并且在使用正确的 MySQL 语法方面遇到了困难。任何关于我正在寻找的 SQL 类型的指针都将不胜感激。
请考虑这两个简单的表:
purchase:
id email product_id
1 andy@aaa.com 1
2 bob@bar.com 2
3 charly@code.com 1
4 charly@code.com 2
subscriber:
id email name
1 andy@aaa.com Andy
2 bob@bar.com Bob
3 charly@code.com Charly
我想选择没有购买 product_id 1 的订阅者。即:在这种情况下,它应该只返回 Bob 的行。
但是,我目前正在使用这个...
SELECT DISTINCT subscriber.*
FROM subscriber
LEFT OUTER JOIN purchase
ON subscriber.email = purchase.email
WHERE ( purchase.product_id <> 1 )
...返回这个:
id email name
2 bob@bar.com Bob
3 charly@code.com Charly
我知道我需要处理有人在“购买”表中出现两次的情况。我怎样才能做到这一点?
谢谢指点!
法比安