2017-04-12 75 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'