首頁 > 資料庫 > mysql教程 > 如何解決 MySQL 的 EXCEPT 語法錯誤並找到替代方案?

如何解決 MySQL 的 EXCEPT 語法錯誤並找到替代方案?

Linda Hamilton
發布: 2024-12-31 08:24:13
原創
672 人瀏覽過

How to Resolve MySQL's EXCEPT Syntax Error and Find Alternatives?

MySQL EXCEPT 語法錯誤:解決方案與替代方案

嘗試在MySQL 中使用EXCEPT 運算子執行查詢時遇到的錯誤是由於以下原因引起的它缺乏對此語法的支持。

要解決此問題,請考慮使用 NOT IN 或 a 等替代方法LEFT JOIN:

SELECT s.sno 
FROM students s
WHERE s.sno NOT IN 
(
    SELECT t.sno 
    FROM take t 
    WHERE t.cno = 'CS112'
);
登入後複製

或者,您可以使用 LEFT JOIN:

SELECT s.sno 
FROM students s
    LEFT JOIN take t ON s.sno = t.sno
WHERE IFNULL(t.cno, '') != 'CS112'
登入後複製

臨時表演示:

來說明這些替代方案的有效性,讓我們使用範例建立臨時表data:

create temporary table temp_students (sno int)

insert into temp_students values (1)
insert into temp_students values (2)
insert into temp_students values (3)
insert into temp_students values (4)
insert into temp_students values (5)
insert into temp_students values (6)
insert into temp_students values (7)
insert into temp_students values (8)
insert into temp_students values (9)
insert into temp_students values (10)

create temporary table temp_take (sno int, cno varchar(50))

insert into temp_take values (1, 'CS112')
insert into temp_take values (2, 'CS112')
insert into temp_take values (3, 'CS112')
insert into temp_take values (4, 'CS112')

Execute the following query to retrieve students who are not enrolled in CS112:

SELECT s.sno 
FROM temp_students s
        LEFT JOIN temp_take t ON s.sno = t.sno
WHERE IFNULL(t.cno, '') != 'CS112'
登入後複製

此查詢應傳回學生編號5 到10。

以上是如何解決 MySQL 的 EXCEPT 語法錯誤並找到替代方案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板