Как правильно исправить неоднозначную синтаксическую ошибку SQL? - PullRequest
0 голосов
/ 25 февраля 2019

Я пишу запрос, в котором будут найдены имена студентов, зачисленных в максимальное количество классов из следующего соотношения.Я использую сервер MySQL и работаю с MySQL Workbench.

 Student(snum: integer, sname: string, major: string, level: string, age: integer) 
 Class(name: string, meets_at: time, room: string, fid: integer) 
 Enrolled(snum: integer, cname: string) Faculty(fid: integer, fnarne: string, deptid: integer)

Вот как я пытался реализовать запрос.

SELECT F.fname , COUNT(*) AS CourseCount
FROM faculty F, class C
WHERE F.fid  = C.fid 
GROUP BY F.fid , F.fname 
HAVING EVERY (C.room = 'R128');

Однако я получаю эту ошибку, которую не могу исправить.

 Error Code: 1064. You have an error in your SQL syntax; check the manual 
 that corresponds to your MySQL server version for the right syntax to use 
 near '(C.room = 'R128')' 

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Вы можете попробовать ниже - каждый неверный синтаксис, поэтому вы получили ошибку

select * from 
(
select F.fname, count(*) as CourseCount
from faculty as F
join class as C on C.fid = F.fid and C.room = 'R128'
group by F.fid, F.fname
)A where CourseCount in (select max(coursecount) from (select F.fname, count(*) as CourseCount
from faculty as F
join class as C on C.fid = F.fid and C.room = 'R128'
group by F.fid, F.fname)B)
0 голосов
/ 25 февраля 2019

Вы можете попробовать этот способ.

select F.fname, count(*) as CourseCount
from faculty as F
join class as C on C.fid = F.fid and C.room = 'R128'
group by F.fid, F.fname
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...