sql - 未找到列 foo 表名 - Teradata
问题描述
我将 Teradata Express Studio 与此查询一起使用:
SELECT column1
FROM table1
INNER JOIN table2
ON table1.column2 = table2.column3
WHERE table2.column4 IN "foo";
我收到以下错误:
Executed as Single statement. Failed [5628 : HY000] Column foo not found in table2 or table1.
我正在尝试搜索column4
值为 foo 的条目,但似乎认为 foo 是列名,有人可以帮助我吗?
解决方案
字符串在 SQL 中由单引号分隔,您想要=
而不是IN
:
SELECT column1
FROM table1 INNER JOIN
table2
ON table1.column2 = table2.column3
WHERE table2.column4 = 'foo';
我也可能建议将其写为:
SELECT t1.column1
FROM table1 t1
WHERE EXISTS (SELECT 1 FROM table2 t2 WHERE t1.column2 = t2.column3 AND t2.column4 = 'foo');
如果多行在table2
. 这通常是可取的。
推荐阅读
- provisioning-profile - 使用新的捆绑标识符和配置文件构建 Testflight
- c# - 如何实现接口 IDataReader 以便在插入之前处理数据?
- node.js - 尝试实现Linkedin Oauth2.0全认证流程
- sql - 将图表对象从 Access 2007 更新到 Access 2013 或更高版本时出错
- regex - 正则表达式匹配后跟两个不同字符串的内容
- html - 如何设置overrflow-x;visbile 和 overflow-y:在同一个 div 上滚动
- angular - 如何创建一个角度库来拦截从我的应用程序发出的 http 请求
- bash - 如何提取 github 存储库的提交页面总数
- java - 无法存储大型二维数组。内存不足错误
- javascript - 如何在没有 git 的情况下计算目录的 SHA 参数?