kb_nid est une clé unique et une table c_nodes; comprennent kb_nid, runState, champs startedTimemysql - sur la mise à jour de la clé en double, champ de la table jointe
Je veux avant la mise à jour de la table, comparer ancienne table mais obtenir cette erreur:
"SQL Error (1054): Unknown column 'cn.runState' in 'field list'"
INSERT INTO c_nodes(kb_nid,runState,startedTime)
SELECT n.id, n.nState>10 as runState, NULL as startedTime
FROM node n
LEFT JOIN c_nodes cn ON n.id =cn.kb_nid
GROUP BY n.id
ON DUPLICATE KEY UPDATE startedTime=IF(cn.runState<>VALUES(runState) ,NOW(),cn.startedTime)
Je ne vois aucun problème.
Modifier http://sqlfiddle.com/#!9/8f8a84
Merci pour l'aide.
Si vous voulez quelqu'un pour vous aider, vous feriez mieux de schéma à condition de toutes les tables impliquées. – Jacobian
En guise de supposition, essayez de supprimer les alias "cn" du bloc "ON DUPLICATE KEY UPDATE ..." – Jacobian
merci @Jacobian si j'ai supprimé cn, je ne peux pas comparer l'ancien état; En attendant modifier pour sqlfiddle mon message, s'il vous plaît vérifier à nouveau. – JeWoPeR