2 Запросы работают хорошо по отдельности, но в сочетании выдают синтаксическую ошибку - PullRequest
0 голосов
/ 04 декабря 2018

Первый запрос относится к списку книг и авторов, относящихся к определенной теме, и дает правильный результат:

SELECT BOOK_NUM,
BOOK_TITLE,
BOOK_SUBJECT,
AU_LNAME
FROM BOOK
JOIN WRITES USING (BOOK_NUM)
JOIN AUTHOR USING (AU_ID)
WHERE BOOK_SUBJECT = 'CLOUD'
ORDER BY BOOK_TITLE;

Второй расширяет тему и также дает правильный результат:

SELECT BOOK_NUM,
BOOK_TITLE,
BOOK_SUBJECT,
AU_FNAME,
AU_LNAME,
Count(BOOK_TITLE) AS `NUM BOOKS BY AUTHOR`
FROM BOOK
JOIN WRITES USING (BOOK_NUM)
JOIN AUTHOR USING (AU_ID)
GROUP BY BOOK_NUM, AU_ID
ORDER BY `NUM BOOKS BY AUTHOR`,
AU_LNAME;

Когда я объединяю два, это приводит к синтаксической ошибке в WHERE BOOK_SUBJECT = 'CLOUD':

SELECT BOOK_NUM,
BOOK_TITLE,
BOOK_SUBJECT,
AU_FNAME,
AU_LNAME,
Count(BOOK_TITLE) AS `NUM BOOKS BY AUTHOR`
FROM BOOK
JOIN WRITES USING (BOOK_NUM)
JOIN AUTHOR USING (AU_ID)
GROUP BY BOOK_NUM, AU_ID
WHERE BOOK_SUBJECT = 'CLOUD'
ORDER BY `NUM BOOKS BY AUTHOR`, 
AU_LNAME,
BOOK_TITLE;

Независимо от того, где я ее размещаю, я получаю ту же ошибку, и если я ее удаляюкод работает.Что мне нужно сделать, чтобы это исправить?Мне нужно, чтобы это условие было включено.Заранее благодарю за помощь.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Хороший вопрос.Попробуйте ссылаться на некоторую документацию по порядку выражений ...

Попробуйте следующий код, куда мы соответствующим образом переместили оператор WHERE.

SELECT 
BOOK_NUM,
BOOK_TITLE,
BOOK_SUBJECT,
AU_FNAME,
AU_LNAME,
Count(BOOK_TITLE) AS `NUM BOOKS BY AUTHOR`

FROM BOOK
JOIN WRITES USING (BOOK_NUM)
JOIN AUTHOR USING (AU_ID)

WHERE BOOK_SUBJECT = 'CLOUD'

GROUP BY BOOK_NUM, AU_ID

ORDER BY `NUM BOOKS BY AUTHOR`, 
AU_LNAME,
BOOK_TITLE;
0 голосов
/ 04 декабря 2018

Не уверен, какой SQL вы используете.Попробуйте переместить предложение WHERE выше GROUP BY.

...