1
我想刪除基於另一個表的表中陳舊的記錄。我們的問題是,課程分配給表A中兩個不同建築物的學生。根據Student_ID和Building,我們需要比較Table_A
到Table_B
。如果學生的Table_B
建築物不符合Table_A
,刪除不具有相同建築物的記錄,但保留位於同一建築物中的記錄。比較兩個表並刪除陳舊的數據
Table_A
包含學生的時間表:
- SCHOOL_YEAR
- student_id數據
- 建築
- 課程
Table_B
包含學生報名:
- student_id數據
- 建築
這裏是我想出:
DELETE FROM Table_A
WHERE exists
(SELECT Table_B.STUDENT_ID, Table_B.BUILDING, TABLE_A.BUILDING
FROM TABLE_B
INNER JOIN TABLE_A ON Table_B.STUDENT_ID = Table_A.STUDENT_ID
AND Table_B.BUILDING <> Table_A.BUILDING
AND Table_A.SCHOOL_YEAR = 2015)
它不清楚哪一部分您當前的查詢不起作用。也許一些示例數據或[小提琴](http://www.sqlfiddle.com) – paqogomez
@paqogomez,語法錯誤。 –
許多數據庫具有不同的語法,用於根據另一個表中的值刪除一個表的內容。你正在運行哪個數據庫?這將有助於獲得更好的答案。 :) – Barett