我有一个使用mysql的查询,如下所示:
Delete A, B, C
FROM FROM A
INNER JOIN B
ON A.a = B.a
INNER JOIN C
ON B.c = C.c
WHERE A.a = 'value'.
如果找到匹配的记录,此查询可以正常工作。 但在我的情况下,可能会出现在表B和C上找不到匹配记录的情况。当发生这种情况时,我仍然希望表A上的记录仍然被删除。 我已经看到了从表中一个接一个地删除的选项,但是这个过程很漫长而且很忙。 关于如何解决这个问题的任何帮助?
答案 0 :(得分:0)
如果您想要加入B和C可选,那么您应该使用LEFT JOIN
而不是INNER JOIN
。
例如,像这样的查询应该完成您要执行的操作:
Delete A, B, C
FROM A
LEFT JOIN B
ON A.a = B.a
LEFT JOIN C
ON B.c = C.c
WHERE A.a = 'value'