首页 > 解决方案 > 未找到列 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 是列名,有人可以帮助我吗?

标签: sqlteradata

解决方案


字符串在 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. 这通常是可取的。


推荐阅读