Я хочу выбрать все строки, которые существуют в конкретной таблице, и не существует в другой таблице, чтобы удалить их.Удалить данные, которые существуют в одной таблице и не существуют в другой?
Я пишу следующий запрос, но я получаю строки в обеих таблицах!
SELECT UNIQUE b.values_key FROM request_fo a INNER JOIN rm_trans b
ON b.values_key != a.req_year || ',' || a.req_ser
AND b.taskcode = 19
AND b.values_key IS NOT NULL
AND a.req_year IS NOT NULL
AND a.req_ser IS NOT NULL
Я хочу использовать следующее для удаления существуют данные в request_fo
и не существует в rm_trans
:
DELETE request_fo
FROM request_fo a
INNER JOIN
rm_trans b
ON b.values_key != a.req_year || ',' || a.req_ser
AND b.taskcode = 19
AND b.values_key IS NOT NULL
AND a.req_year IS NOT NULL
AND a.req_ser IS NOT NULL
Правильно ли это ??
Различные СУБД имеют различный синтаксис для операций DELETE, особенно DELETE с операциями объединения. Вы не можете автоматически ожидать, что работает в MS SQL Server для работы в Oracle, DB2, Informix, MySQL, PostgreSQL - обычно это не обязательно работает в Sybase. –
@JonathanLeffler: Тогда, пожалуйста, что синтаксис сделать 'УДАЛЕНИЯ ИЗ request_fo в LEFT JOIN rm_trans B ON b.values_key = a.req_year + '' + a.req_ser И b.taskcode = 19 где Ь. values_key IS NULL; 'in informix –