当一行为空时,无法删除mysql匹配项

时间:2016-11-28 12:36:15

标签: mysql

我有一些带有“temp”列的表,我想在“temp”数匹配时删除所有行但是如果我有一个与where子句不匹配的表mysql说查询没问题但返回0匹配并且不删除所有其他巧合。 这是我的问题:

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 个答案:

答案 0 :(得分: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;