mam Tabela A z następujących wartości:usunąć wiersza z tabeli, w której istnieje wartość w drugiej tabeli
+------+------+ | ID1 | ID2 | +------+------+ | 1689 | 1709 | | 1709 | 1689 | | 1782 | 1709 | | 1911 | 1247 | | 1247 | 1468 | | 1641 | 1468 | | 1316 | 1304 | | 1501 | 1934 | | 1934 | 1501 | | 1025 | 1101 | +------+------+
i drugi wzór (Tabela B) z następującymi wartościami:
+------+------+ | ID1 | ID2 | +------+------+ | 1641 | 1468 | | 1911 | 1247 | +------+------+
bym jak usunąć wszystkie wiersze w Tabeli A, które pojawiają się w Tabeli B (dokładne dopasowanie na ID1 i ID2). Wydaje się proste w teorii, ale nie mam żadnej radości z instrukcji EXISTS lub innych podejść. Używam SQLite.
Wszelkie sugestie bardzo doceniane.
Uważam, że ta składnia SQL jest niezwykle trudna. Jeśli TableA i TableB to ta sama tabela, to muszę użyć "TableA", aby odwołać się do tabeli w klauzuli delete i nie mam możliwości nadania jej nazwy aliasu; przeciwnie, muszę podać nazwę aliasu do tabeli w pod-zapytaniu i nie mam możliwości użycia "id1" i "id2" bez nazwy tabeli prefiksów ... –
Spróbuj użyć CTE dla podselekcji –