如何在所有表中找到相同的itemid并删除它们?

时间:2018-02-03 21:27:46

标签: php mysql

我有两个表t1和t2。他们的列只共享itemid(唯一)(他们都有该列来标识项目)。 t1删除具有特定值的行(名为nbr的列)。我希望t2删除所有具有相同itemid的行。

我做了一些尝试但没有成功。这是我在PHP中尝试过的一个例子。

$result = "DELETE FROM t1,t2 WHERE t1.value<5 AND t1.itemid=t2.itemid";
mysqli_query($db, $result) or die('Error');

我还看了一下“离开加入&#39;但没有成功。所以我开始认为没有简单的查询可以做到这一点,但我想在尝试更长(更慢)的解决方案之前先检查一下这个社区。

编辑:我想做的事情类似于将两个表相互比较并删除那两个表中不存在的itemid。

2 个答案:

答案 0 :(得分:0)

如果要将行与t1和t2进行比较并删除缺失的行,可以尝试:

DELETE FROM t2
WHERE NOT EXISTS (
SELECT *
FROM t1
WHERE itemid = t2.itemid)

答案 1 :(得分:-1)

这样的事情怎么样:

DELETE t1
FROM t1
INNER JOIN t2 ON t1.itemid = t2.itemid
WHERE t1.value < 5

我忘记了第二张桌子,所以你可能需要这个:

DELETE t1, t2
FROM t1
INNER JOIN t2 ON t1.itemid = t2.itemid
WHERE t1.value < 5