mysql - 2 查询单独运行良好,但组合起来会产生语法错误
问题描述
第一个查询与与特定主题相关的书籍和作者列表相关,并产生正确的结果:
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 子句。预先感谢您帮助我。
解决方案
不确定您使用的是什么 SQL。尝试将 WHERE 子句移到 GROUP BY 之上。
推荐阅读
- jenkins - Jenkins Job DSL Git 插件 - 如何在构建之前合并
- java - java.lang.StringIndexOutOfBoundsException:yuicompressor 中的字符串索引超出范围
- batch-file - 无法在批处理脚本中记录嵌套 If 的结果
- angular - 在 Angular 中使用异步显示表格行
- python-3.x - flask_jwt_extended 在解码我的 JWT 时抛出错误。我怎样才能捕捉到它?
- r - 如何用R中的另一组值替换变量中的一组字符值
- java - 侦探与改造2兼容
- ssl - 如何在 WordPress 站点的 AWS EC2 实例上安装 AWS 公共 SSL
- ios - 您可以一次激活多个 Segue 吗?
- django - Django:如何验证具有某些特殊权限的用户