У меня проблема с удалением записей из таблицы PostgreSQL с использованием LEFT JOIN
.Как удалить строки с помощью внешнего соединения
Я хотел бы, чтобы удалить строки, которые я получаю с помощью следующего запроса:
SELECT * FROM url
LEFT JOIN link_type ON url.link_type = link_type.id
WHERE link_type.id IS NULL
Чтобы сделать это, вот что я сделал:
DELETE FROM url
USING link_type
WHERE url.link_type = link_type.id AND link_type.id IS NULL
запрос работает, но ничего не удалять , хотя это именно то, что объясняется в документе: http://www.postgresql.org/docs/current/static/sql-delete.html.
Является ли моя проблема из-за IS NULL
в запросе или я чего-то не хватает?
Это не удаляет ничего, потому что, когда 'link_type.id' равно null,' url.link_type = link_type.id' неверно, поэтому эти два условия никогда не выполняются вместе. –