#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)
;
如果table1
和table2
之间的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
)
我在 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)
;
如果table1
和table2
之间的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
)