ホームページ > データベース > 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 や 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'
ログイン後にコピー

一時テーブルを使用したデモ:

これらの代替手段の有効性を説明するために、サンプルを使用して一時テーブルを作成してみましょうデータ:

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート