我有一个包含重复条目的表格:
|User|Product|
--------------
|John| apple |
|John| orange|
|Tim | apple |
|Tom | grape |
|Kath| orange|
我想选择有橙色的用户,但我想要删除多次输入的用户。我通常认为在代码中,所以我的引用是一个if语句,但是在查询中有一种简单的方法可以做到这一点。这是伪代码中的逻辑:
foreach row
if Product = orange
if User not in userList && not in duplicateList
userList += row.User // add User to the userList
else if User in userList
remove User from userList
duplicateList += row.User
请告知我是否可以改进问题标题。
答案 0 :(得分:1)
<强>更新强>
试试这个:
SELECT Tab.`User`
FROM Tab
LEFT JOIN (SELECT `User`, COUNT(Product)
FROM Tab
GROUP BY `User`
HAVING COUNT(Product) > 1) AS Tab2
ON Tab.`User` = Tab2.`User`
WHERE Product LIKE "Orange"
AND Tab2.`User` IS NULL