[英]Deleting From Multiple Tables When There Are Unmatched Records
我有一个使用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上的记录仍被删除。 我已经看到了一个接一个地从表中删除的选项,但是这个过程很漫长而忙碌。 有什么帮助吗?
如果要使对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'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.