Tôi có Bảng A với các giá trị sau:Xóa dòng từ bảng nơi trận tồn tại trong bảng thứ hai
+------+------+ | ID1 | ID2 | +------+------+ | 1689 | 1709 | | 1709 | 1689 | | 1782 | 1709 | | 1911 | 1247 | | 1247 | 1468 | | 1641 | 1468 | | 1316 | 1304 | | 1501 | 1934 | | 1934 | 1501 | | 1025 | 1101 | +------+------+
và một mối quan hệ (bảng B) với các giá trị sau:
+------+------+ | ID1 | ID2 | +------+------+ | 1641 | 1468 | | 1911 | 1247 | +------+------+
tôi sẽ muốn xóa tất cả các hàng trong Bảng A xuất hiện trong Bảng B (đối sánh chính xác trên ID1 và ID2). Có vẻ đơn giản trong lý thuyết nhưng tôi không có niềm vui với câu lệnh EXISTS hoặc các cách tiếp cận khác. Tôi đang sử dụng SQLite.
Bất kỳ đề xuất nào được đánh giá cao.
Tôi thấy cú pháp này của SQL cực kỳ phức tạp. Nếu TableA và TableB là cùng một Bảng, thì tôi phải sử dụng 'TableA' để tham chiếu đến bảng trong mệnh đề xóa, và tôi không có cách nào để cho nó một tên bí danh; ngược lại, tôi phải đặt tên bí danh cho bảng trong truy vấn phụ và không có cách nào để sử dụng 'id1' và 'id2' không có tên bảng tiền tố ... –
Thử sử dụng CTE để chọn tùy chọn –