我要从多个表中删除行,如何执行此操作?
我试过了
DELETE a.*, b.*, c.*
FROM table1 as a, table2 as b, table3 as c
WHERE a.colName = 'value'
AND b.colName = 'value'
AND a.c.colName = 'value';
'value'
对于所有表和colName
都是相同的。因为此查询记录必须存在于所有表中,但在我的情况下,记录可能存在于表中,也可能不存在。
运行删除查询时,删除现有记录,否则返回“cc>”。所以我只想运行3个这样的查询
DELETE FROM table1 WHERE colName = 'value';
DELETE FROM table1 WHERE colName = 'value';
DELETE FROM table1 WHERE colName = 'value';
在一个查询中。
谢谢
最佳答案
Delete with joins在mysql中有点奇怪。你需要这样的东西:
编辑:
允许在所有表上不存在行
DELETE FROM
table1, table2, table3
USING
table1
LEFT JOIN
table2 ON table2.colName = table1.colName
LEFT JOIN
table3 ON table3.colName = table1.colName
WHERE
table1.colName = 'value'