mysql - “USING”语句MYSQL缺少右括号错误
问题描述
Syntax error: missing 'closing parenthesis'
当我在USING
语句中添加说明符时得到一个
这是一个类似于我正在做的例子:
SELECT * FROM student s JOIN test_result using (s.id) where s.id = 1335;
我的实际查询要复杂得多,我有多个要加入的表,并且一些表具有相同名称的列,因此当我尝试JOIN
使用第三个表访问其中一个表时,我得到一个Error Code: 1052. Column 's.id' in from clause is ambiguous
. 当我试图通过指定id
要使用的表来避免这种情况时,我得到一个Syntax error: missing 'closing parenthesis'
解决方案
子句中的列USING()
不采用别名 - 基本思想是该列应该在两个表中都可用。
这还具有消除列歧义的优点,因此您不需要在子句中使用表别名作为前缀WHERE
。
只是:
SELECT *
FROM student s
INNER JOIN test_result ts USING (id)
WHERE id = 1335;
缺点是,如果您在多个表都有一个列的多连接上下文中使用它id
,您将无法选择选择哪个表id
。在某些情况下,这可能很麻烦。在这种情况下,您需要切换回join ... on ...
语法:
SELECT *
FROM student s
INNER JOIN test_result ts on ts.id = s.id
WHERE id = 1335;
推荐阅读
- javascript - Oscillator.stop(JS 音频 API)不能在手机上运行?
- javascript - 带有 laravel 5.6 的 Hilios 倒数计时器
- hyperledger-fabric - 为生产环境配置 Hyperledger Fabric
- windows - 获取某个应用正在下载的文件的下载链接
- sql-server - SQL 需要根据小时合并两列
- spring - 多部分文件 api 中不支持的媒体类型
- c++ - 使用带有条件变量的 cpp_redis pub/sub 问题
- angular - Angular6 HttpClient catchError 不起作用
- javascript - React 16 - ES6 - Webpack - 错误:模块不是加载器(必须具有正常或俯仰功能)
- python - 从 .txt 文件 Python 中读取 URL