Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Lỗi khi sử dụng ngoại trừ trong một truy vấn

Tôi không tin rằng MySQL hỗ trợ cú pháp EXCEPT. Hãy thử sử dụng NOT IN hoặc LEFT JOIN :

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

HOẶC

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

CẬP NHẬT

Tôi đã giả mạo dữ liệu của bạn như vậy và nó trả về chính xác từ 5 đến 10:

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. 12 Phương pháp Tốt nhất về Bảo mật MySQL / MariaDB cho Linux

  2. mySQL DataSource trên Visual Studio 2012

  3. Cách Chèn dữ liệu từ một bảng cơ sở dữ liệu sang một bảng cơ sở dữ liệu khác trong Mysql

  4. MySQL Chọn N hàng đầu

  5. Cách tắt Chế độ nghiêm ngặt của MySQL