2016-11-28 31 views
1

我有一些帶有「temp」列的表,我想在「temp」編號匹配時刪除所有行,但是如果我有一個表與該表不匹配where子句mysql說,查詢是好的,但返回0匹配,並不刪除所有其他巧合。 這是我的查詢:當一行爲空時,不能刪除mysql匹配

DELETE IGNORE jornadas,ejerciciosnb,wodsnb,sailkapena,puntostotales FROM jornadas 
INNER JOIN ejerciciosnb 
INNER JOIN wodsnb 
INNER JOIN sailkapena 
INNER JOIN puntostotales 
WHERE puntostotales.temp=sailkapena.temp 
AND jornadas.temp=sailkapena.temp 
AND jornadas.temp=ejerciciosnb.temp 
AND jornadas.temp=wodsnb.temp 
AND jornadas.temp=3 
AND jornadas.bid=94; 

在我的情況下,「sailkapena」可以是空的一些時間......我怎麼能刪除所有其他的巧合?

回答

1

使用LEFT JOIN!而非,並請正確使用ON條款:

DELETE IGNORE jornadas,ejerciciosnb,wodsnb,sailkapena,puntostotales 
FROM jornadas 
LEFT JOIN ejerciciosnb 
ON jornadas.temp=ejerciciosnb.temp 
LEFT JOIN wodsnb 
ON jornadas.temp=wodsnb.temp 
LEFT JOIN sailkapena 
ON jornadas.temp=sailkapena.temp 
LEFT JOIN puntostotales 
ON puntostotales.temp=jornadas.temp 
WHERE jornadas.temp=3 
    AND jornadas.bid=94; 
+0

OMG ...謝謝... – user2966691