Mysql
 sql >> база данни >  >> RDS >> Mysql

Грешка при използване освен в заявка

Не вярвам, че MySQL поддържа синтаксис ОСВЕН. Опитайте да използвате 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'
);

ИЛИ

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

АКТУАЛИЗИРАНЕ

Момирах вашите данни като такива и те връщат правилно от 5 до 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. Получаване на необработен низ за SQL заявка от подготвени оператори на PDO

  2. Защо изместването на MYSQL по-високо LIMIT забавя заявката?

  3. Първо подреждане по конкретна стойност на полето

  4. MySQL SELECT само не нулеви стойности

  5. Разбиране на HAProxy статистиката за MySQL и PostgreSQL