UPDATE sop_nodes n JOIN sop_versions sv ON sv.id = n.sop_version_id SET n.config = JSON_SET( n.config, '$.knowledge_card_version_id', ( SELECT kv.id FROM knowledge_card_versions kv WHERE kv.tenant_id = n.tenant_id AND kv.knowledge_card_id = CAST(JSON_UNQUOTE(JSON_EXTRACT(n.config, '$.knowledge_card_id')) AS UNSIGNED) AND kv.created_at <= COALESCE(sv.published_at, sv.updated_at) ORDER BY kv.version DESC LIMIT 1 ) ) WHERE n.type = 'knowledge' AND JSON_EXTRACT(n.config, '$.knowledge_card_version_id') IS NULL AND JSON_EXTRACT(n.config, '$.knowledge_card_id') IS NOT NULL AND EXISTS ( SELECT 1 FROM knowledge_card_versions kv WHERE kv.tenant_id = n.tenant_id AND kv.knowledge_card_id = CAST(JSON_UNQUOTE(JSON_EXTRACT(n.config, '$.knowledge_card_id')) AS UNSIGNED) AND kv.created_at <= COALESCE(sv.published_at, sv.updated_at) );