mysql - 为什么我在 mysql 中收到语法错误?
问题描述
SELECT ID, Name
FROM Members
WHERE ID IN
(SELECT Member ID
FROM Team Member
WHERE Team ID IN
(SELECT ID
FROM Teams
WHERE Year = 2012 AND Country = 'Phillipines'))
当我将此查询输入 phpmyadmin 时,我收到错误 #1064 说我没有正确的语法。如何解决这个问题?
解决方案
直接错误似乎是WHERE Team ID IN ...
which 实际上应该是WHERE TeamID IN ...
. 还有其他类似的错误。但是,我们可以尝试使用连接重写您的查询,使其更具可读性和可维护性:
SELECT m.ID, m.Name
FROM Members m
INNER JOIN TeamMember tm
ON m.ID = tm.MemberID
INNER JOIN Teams t
ON tm.TeamID = t.ID
WHERE
t.Year = 2012 AND t.Country = 'Phillipines';
通常,SQL 中的标识符必须是一个没有任何空格的单词。如果Team ID
实际上是一个列名,那么您必须在 MySQL 中使用反引号来引用它。但是,您应该避免这样做。
推荐阅读
- django - Django 迁移已通过,但字段未删除
- kotlin - 无法使用 libVLC 播放 YouTube 视频,media.subItems() 为空(Android、Kotlin)
- python-venv - 重新使用已在给定文件夹中创建的 venv
- sql - PostgreSQL - 转换为字符(1)与喜欢
- html - 标题 CSS 不适用于页面顶部
- visual-studio - 如何使用 OneDrive 作为已发布应用程序的更新位置
- c# - ManagementObjectSearcher WMIquery 很慢
- python - 关于向mysql数据库插入数据
- angular - Angular 11 中 MAT_DATE_LOCALE 的导入语句
- angular - 具有特定 ng/nrwl 版本的项目生成器