2016-02-03 3 views
-1

Я пытаюсь использовать объединение, но я получаю эту неопределенную синтаксическую ошибку. Я могу получить каждый запрос для запуска отдельно, но когда я пытаюсь использовать союз я получаю эту ошибкуОшибка синтаксиса SQL или отсутствующая база данных (около "(": синтаксическая ошибка ") при использовании объединения

(SELECT s.sname, COUNT(s.sname) AS number 
FROM sailor s, boat b 
WHERE b.rating <= s.rating 
GROUP BY s.sname) 
UNION 
(SELECT s.sname, 0 AS number 
FROM sailor s 
WHERE NOT EXISTS(
       SELECT * FROM boat b 
       WHERE s.rating >= b.rating)); 

ответ

0

в SQL, только подзапросы использовать круглые скобки в составном запросе, отдельные вЫБИРАЕТ должны быть написаны без них:..

SELECT s.sname, COUNT(s.sname) AS number 
FROM sailor s, boat b 
WHERE b.rating <= s.rating 
GROUP BY s.sname 
UNION 
SELECT s.sname, 0 AS number 
FROM sailor s 
WHERE NOT EXISTS(
       SELECT * FROM boat b 
       WHERE s.rating >= b.rating); 

И в данном конкретном случае , вы можете просто хотеть использовать outer join:

SELECT s.sname, 
     IFNULL(COUNT(b.rating), 0) AS number 
FROM sailor AS s 
LEFT JOIN boat AS b 
ON b.rating <= s.rating; 
Смежные вопросы

 Смежные вопросы