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