Mysql “where子句”中的未知列“p.id”
当我执行我的请求时: 我有一个错误: 我不明白使用显式联接: 或者,更简单地说,使用ORDER BY和LIMIT:Mysql “where子句”中的未知列“p.id”,mysql,sql,Mysql,Sql,当我执行我的请求时: 我有一个错误: 我不明白使用显式联接: 或者,更简单地说,使用ORDER BY和LIMIT: 如果我没弄错你的问题,你需要给maxid起个名字 UPDATE vm s , (SELECT MAX(id) as id FROM vm) as p SET s.title = 'TEST' WHERE s.id = p.id; 你想干什么?子查询不返回任何列id。如果我正确理解您的查询,它不应该是WHERE s.id=p吗?您创建了一个名为p的列,然后在没有id的情况下尝
如果我没弄错你的问题,你需要给maxid起个名字
UPDATE vm s , (SELECT MAX(id) as id FROM vm) as p
SET s.title = 'TEST'
WHERE s.id = p.id;
你想干什么?子查询不返回任何列id。如果我正确理解您的查询,它不应该是WHERE s.id=p吗?您创建了一个名为p的列,然后在没有id的情况下尝试将其引用为p.id。当然,如果MySQL与MSSQL类似,那么WHERE子句中不支持别名。
Unknown column 'p.id' in 'where clause'
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'p.id' in 'where clause'
UPDATE vm s JOIN
(SELECT MAX(id) as pid FROM vm) p
ON s.id = p.pid
SET s.title = 'TEST' ;
UPDATE vm
SET title = 'TEST'
ORDER BY id DESC
LIMIT 1;
UPDATE vm s , (SELECT MAX(id) as id FROM vm) as p
SET s.title = 'TEST'
WHERE s.id = p.id;