2015-10-28 37 views
0

我有重複的條目表:MySQL查詢可以執行類似流量控制的操作嗎?

|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

基於此輸入提供所需的輸出。同時提供邏輯背後的原因,你爲什麼要消除約翰,並不想消除凱思。 – gandra404

+0

看起來像XY問題 – lad2025

+0

@ lad2025絕對可以,我通常不會建立查詢,我肯定會使用錯誤的工具,如果這就是你的意思。 – icicleking

回答

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 
+1

我引用'用戶',因爲它是關鍵字 – lad2025

+0

是啊感謝編輯 –

+1

感謝@MattiaCaputo這就是我正在尋找。現在我只需要加入另一張桌子...... – icicleking

相關問題