即使列存在,MySQL嵌套查询返回“未知列”

时间:2017-03-27 16:02:51

标签: mysql

我试图做一个非常简单的嵌套查询

SELECT group FROM customer_table WHERE customer_table.customer_number=other_table.cust_num

但查询正在返回

'#1054 - 'where子句'

中的未知列'other_table.cust_num'

表和列肯定都存在并且在查询中正确命名。我做的事情显然很愚蠢吗?任何帮助都会非常感激,因为我觉得我很疯狂。

2 个答案:

答案 0 :(得分:1)

我认为你想要完成的事情被称为加入。

请改为尝试:

SELECT customer_table.group 
FROM customer_table 
INNER JOIN other_table ON customer_table.customer_number = other_table.cust_num;

您收到错误是因为您在WHERE子句中指定了不属于查询的表/列条件

答案 1 :(得分:1)

在查询中编写other_table时,编译器不知道。这就是为什么你得到未定义的错误。
要选择或比较两个表中的数据,我们使用 JOINS
联接的类型不同 - 内部,交叉等。

正确的查询将是

    SELECT customer_table.group 
    FROM customer_table 
    INNER JOIN other_table 
    ON customer_table.customer_number = other_table.cust_num;

Join根据 ON 子句指定的条件组合两个表。