2011-12-16 87 views
0

有一個名爲user_products的表,其中包含用戶已授權的每個產品的記錄。在mySQL中刪除具有多個產品記錄的用戶

USER_ID,PRODUCT_ID,(其它一些領域,如時間戳)

我有18個產品,但要找到具有產品3的紀錄,併爲產品4記錄所有用戶,然後刪除記錄中他們對產品3

回答

2
DELETE 
FROM user_products AS up3 
WHERE product_id = 3 
    AND EXISTS 
     (SELECT * 
     FROM user_products AS up4 
     WHERE up4.product_id = 4 
      AND up4.user_id = up3.user_id 
    ) 

JOIN

DELETE up3 
FROM user_products AS up3 
    JOIN user_products AS up4 
    ON up4.user_id = up3.user_id 
WHERE up3.product_id = 3 
    AND up4.product_id = 4 
+0

聯接的工作完美...我是路徑複雜得多的「解決方案」上。感謝您的迴應 – 2011-12-16 20:16:48