kb_nid是唯一键和c_nodes表;包括kb_nid,runState,startedTime字段
我想在表更新之前,比较旧表但得到这个错误:
“SQL错误(1054):'字段列表'中的未知列'cn.runState'”
{{1}}
我看不出任何问题。
修改http://sqlfiddle.com/#!9/8f8a84
感谢您的帮助。
答案 0 :(得分:0)
我用子查询修复它。我猜错误原因是 GROUP BY
INSERT INTO c_nodes(kb_nid,runState,startedTime)
SELECT n.id,runState,startedTime FROM (
SELECT n.id, n.nState>10 as runState, NULL as startedTime
FROM node n
GROUP BY n.id) tt
LEFT JOIN c_nodes cn ON tt.id =cn.kb_nid
ON DUPLICATE KEY UPDATE startedTime=IF(cn.runState<>VALUES(runState) ,NOW(),cn.startedTime)