Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kesalahan saat menggunakan kecuali dalam kueri

Saya tidak percaya MySQL mendukung sintaks KECUALI. Coba gunakan NOT IN atau LEFT JOIN :

SELECT s.sno 
FROM students s    
WHERE s.sno NOT IN 
(
    SELECT t.sno 
    FROM take t 
    WHERE t.cno = 'CS112'
);

ATAU

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

PERBARUI

Saya mengolok-olok data Anda dan itu mengembalikan 5 hingga 10 dengan benar:

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')

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Pilih Semua Tanggal Dalam Rentang Bahkan Jika Tidak Ada Catatan

  2. Bagaimana cara mencari garis miring (\) di MySQL? dan mengapa melarikan diri (\) tidak diperlukan untuk di mana (=) tetapi untuk Suka diperlukan?

  3. Cara Menyebarkan Database MySQL Chamilo untuk Ketersediaan Tinggi

  4. Menghubungkan android dengan MS SQL SERVER 2008

  5. Contoh Pernyataan JDBC – Sisipkan Batch, Perbarui, Hapus