我有一些带有“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”有时可能是空的......我怎么能删除所有其他巧合?
答案 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;