2016-11-28 40 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