#1054 - 'where clause' 中的未知列

#1054 - Unknown column in 'where clause'

我在 mysql 数据库中有这个查询:

INSERT INTO `table1`( `text1`, `text2`, `link` )

SELECT 
    `text1`,
    `text2``,
    `link`

FROM `table2`

WHERE `table1`.`code` = `table2`.`code`;

我得到一个错误:

#1054 - Unknown column 'table1.code' in 'where clause'

我做错了什么?我没有别名,我试过 HAVING 而不是 WHERE,我试过 INNER JOIN 但没有成功。我的 code 列没有索引。

首先,您还应该显示 table2 的结构,以便我们更好地帮助您。

否则,错误是由于您的查询中缺少 table1。 由于 code 不存在于您的 INSERT 语句中,我可以假设它是一个自动增量字段。

您的查询(我想,因为我看不到 table2 的定义,如前所述),可能是

SELECT
    t2.text1,
    t2.text2,
    t2.link
FROM table2 AS t2
    INNER JOIN table1 AS t1 ON (t1.code = t2.code)
;

如果table1table2之间的link是1对多或多对多,在[=20后加一个DISTINCT即可=] 关键字以避免重复结果或在

中更改您的查询
SELECT
    t2.text1,
    t2.text2,
    t2.link
FROM table2 AS t2
WHERE EXISTS (
    SELECT 'x'
    FROM table1 AS t1
    WHERE t1.code = t2.code
)