2014-09-20 36 views
-1

指定我真的很好奇我怎麼會刪除記錄與此查詢包括如何最終刪除,並非查詢

CREATE temporary TABLE IF NOT EXISTS temp AS 
    (SELECT colleges.college_name, 
      courses.course_name 
    FROM colleges 
      INNER JOIN courses 
        ON colleges.id = courses.college_id 
    WHERE colleges.college_name = 'College of Engineering' 
      AND courses.course_name = 'test' 
    GROUP BY colleges.college_name, 
      courses.course_name); 

DELETE FROM temp 
WHERE college_name = 'College of Engineering' 
     AND course_name = 'test'; 

DROP TABLE temp; 

表院校有值「工程學院」和「學院的所有記錄溝通',而桌子課程有兩個值'測試'。查詢的結果是兩個測試值在工程學院被刪除而不是測試。

+1

您注意到缺少'''? – Sirko 2014-09-20 10:57:23

+0

對不起,我沒有注意到它。編輯 – javacantcsharp 2014-09-20 11:06:54

回答

2

創建臨時表的查詢將被過濾爲colleges.COLLEGE_NAME = 'College of Engineering',因此它只包含具有該值的行。 DELETE語句使用完全相同的過濾器,因此它將刪除臨時表中的所有行。