Ho due tabelle, una per le scadenze di lavoro, una per descrivere un lavoro. Ogni lavoro può assumere uno stato e alcuni stati significa che le scadenze dei lavori devono essere cancellate dall'altra tabella.Eliminazione di righe con MySQL LEFT JOIN
posso facilmente SELECT
i lavori/scadenze che soddisfa i miei criteri con un LEFT JOIN
:
SELECT * FROM `deadline`
LEFT JOIN `job` ON deadline.job_id = job.job_id
WHERE `status` = 'szamlazva'
OR `status` = 'szamlazhato'
OR `status` = 'fizetve'
OR `status` = 'szallitva'
OR `status` = 'storno'
(status
appartiene job
tavolo non deadline
)
Ma quando mi piacerebbe eliminare queste righe da deadline
, MySQL genera un errore. La mia domanda è:
DELETE FROM `deadline`
LEFT JOIN `job`
ON deadline.job_id = job.job_id
WHERE `status` = 'szamlazva'
OR `status` = 'szamlazhato'
OR `status` = 'fizetve'
OR `status` = 'szallitva'
OR `status` = 'storno'
errore MySQL non dice nulla:
Hai un errore nella sintassi SQL; controllare il manuale che corrisponde alla versione del server MySQL per la sintassi diritto di utilizzare vicino a 'LEFT JOIN
job
ON deadline.job_id = job.job_id WHEREstatus
= 'szaml' at line 1
Come posso trasformare il mio SELECT
in una query di lavoro DELETE
?
Utilizzare anche "status in ('szamlazva', 'szamlazhato', 'fizetve', .........)" – Salil
Con "AS" ho dovuto usare l'alias nella mia clausola per farlo funzionare per il mio scopo (delete orfani): dELETE FROM tabella1 t1 AS t1 LEFT JOIN t2 t2 ON t1.uid = t2.result WHERE IS NULL t2.result – Urs
Riferimento: http://dev.mysql.com/doc/ refman/5.7/it/delete.html – Slawa