SQL QUERY(在两个表格之间删除)

时间:2011-07-06 00:15:15

标签: php mysql

我需要查询PHP或者想法。

我有两张桌子:

新闻

ID MAME
--------
 1 Test
 2 Test1
 3 Test2
 4 Test3
 7 Test3

产品

ID NAME PRICE
-------------
 1 Test 11
 9 Test2 22
 8 Test4 122

我需要从新闻中不存在ID的产品中删除记录。

有人能帮助我一些想法吗?

谢谢你的时间!

2 个答案:

答案 0 :(得分:3)

尝试SELECT * FROM PRODUCTS WHERE ID NOT IN (SELECT ID FROM NEWS)

如果此方法有效,则将SELECT *更改为DELETE 最好尝试选择以确保在删除之前获得正确的数据。

答案 1 :(得分:1)

DELETE Products
FROM Products
  LEFT JOIN News
    USING (ID)
WHERE News.ID IS NULL;

如果您想查看从产品中删除的内容,请使用Paul最好先使用选择的建议。

请查看

SELECT * 
FROM Products
  LEFT JOIN News
    USING (ID) 
WHERE News.ID IS NULL;

然后切换回

DELETE Products
FROM Products
  LEFT JOIN News
    USING (ID)
WHERE News.ID IS NULL; 

如果您对结果感到满意。它是重要DELETE Products FROM而不是DELETE FROM,否则将从这两个表中删除。