mysql - 2 查询单独运行良好,但组合起来会产生语法错误

标签 mysql where-clause

第一个查询涉及与特定主题相关的书籍和作者列表,并生成正确的结果:

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;

无论我把它放在哪里,我都会遇到相同的错误,如果删除它,代码就会运行。我需要做什么来解决这个问题?我需要包含这个 where 子句。预先感谢您帮助我。

最佳答案

好问题。尝试引用一些有关表达式顺序的文档...

尝试以下代码,我们在其中适当移动了 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;

关于mysql - 2 查询单独运行良好,但组合起来会产生语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53618177/

相关文章:

mysql - mariadb 10.1.13 加莱拉集群 : error

php - 调用成员函数where()在字符串上

mysql - 对多个 MySql 查询进行分组

mysql - rails + SQL : include join table when no join

MySQL从表中引用自己的id

php - MySQL和PHP查询date=$date问题

sql - ORACLE SQL,其中结尾需要时间

mysql - 使用 NOT EXISTS 选择所有成员

mysql - 使用 MySQL 从字段中删除字符串

mysql - 错误 : function crashed. 详细信息:连接 ECONNREFUSED/cloudsql/<实例连接名称>>