2017-04-12 59 views
0

我用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被发现出现这种情况时我还是想对表格中的记录仍然被删除的场景。 我看到从表一前一后删除的选项,但过程是漫长而忙碌。 如何去这任何帮助吗?

回答

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'