Ho un problema per eliminare i record da una tabella PostgreSQL, utilizzando un LEFT JOIN
.Come eliminare righe utilizzando un join esterno
mi piacerebbe eliminare le righe che ottengo con la seguente query:
SELECT * FROM url
LEFT JOIN link_type ON url.link_type = link_type.id
WHERE link_type.id IS NULL
Per farlo, qui è quello che ho fatto:
DELETE FROM url
USING link_type
WHERE url.link_type = link_type.id AND link_type.id IS NULL
opere query, ma non cancella nulla , anche se questo è esattamente ciò che è spiegato nel documento: http://www.postgresql.org/docs/current/static/sql-delete.html.
Il mio problema è dovuto a IS NULL
nella query o Mi manca qualcosa?
Non cancella nulla perché quando 'link_type.id' è nullo, 'url.link_type = link_type.id' non è vero, quindi queste due condizioni non sono mai soddisfatte insieme. –