执行MySQL查询遇错误:A new statement was found but no delimiter求助
问题解决:MySQL语法错误"A new statement was found but no delimiter"
你的SQL语句把**查询(SELECT)和更新(UPDATE)**的语法混在一起了,这是核心问题。你实际想做的是通过关联rbs_worker表来更新rbs_contract_extension_survey表的字段,但错误用了SELECT开头,还在中间加了SET,MySQL无法识别这种混合语法,所以报错。
正确更新语句(如果你的需求是更新字段)
UPDATE rbs_contract_extension_survey c INNER JOIN rbs_worker w ON c.worker_id = w.worker_id SET c.worker_name = w.worker_name, c.batchno = w.batchno, c.passport_no = w.passport_no, c.company = w.company, c.arrival_date = w.arrival_date, c.plks = w.plks WHERE c.worker_id IS NOT NULL;
正确查询语句(如果你的需求是查询记录)
如果你的初衷是查询而非更新,那要去掉SET部分,直接指定查询字段:
SELECT c.worker_id, w.worker_name, w.batchno, w.passport_no, w.company, w.arrival_date, w.plks FROM rbs_contract_extension_survey c INNER JOIN rbs_worker w ON c.worker_id = w.worker_id WHERE c.worker_id IS NOT NULL;
关键说明
- 更新操作必须用
UPDATE开头,关联表逻辑放在UPDATE与SET之间 - 查询操作要用
SELECT指定字段,搭配FROM和关联逻辑,不能出现SET关键字
内容的提问来源于stack exchange,提问作者puvan andy
相关产品推荐
相关产品推荐

