Скажем, у меня есть 2 таблицы (tb1
, tb2
) как с следующей схемой:Найти записи на нескольких полях не в другой таблице
CREATE TABLE tb1 (
col1 INT NOT NULL,
col2 TEXT NOT NULL,
col3 TEXT NOT NULL,
col4 REAL
);
Как найти записи tb1
, которые не присутствуют в tb2
на столбцы col1
, col2
, col3
?
Я исследовал по this, this и this, но пока они все находят записи только на одной колонке. Я также использовал коды/логику в этих ссылках, но в итоге вернул неверный результат с очень плохими характеристиками (45 тыс. Записей на tb1, 1,7 млн записей на tb2). Я пытаюсь реализовать это на SQLite.
Если вы хотите увидеть, вот мой пример кода (с помощью соединения слева ж/где равна нулю), но не полагаться на нее:
SELECT *
FROM tb1
LEFT JOIN tb2
ON
tb1.col1 = tb2.col1 AND
tb1.col2 = tb2.col2 AND
tb1.col3 = tb2.col3
WHERE
tb2.col1 IS NULL AND
tb2.col2 IS NULL AND
tb2.col3 IS NULL
Приветствую вас за подсказку! – sober