Mysql 插入到具有内部联接的表之间
CiviCRM中较早的数据导入将一些成员编号放入自定义字段(Mysql 插入到具有内部联接的表之间,mysql,sql,phpmyadmin,civicrm,Mysql,Sql,Phpmyadmin,Civicrm,CiviCRM中较早的数据导入将一些成员编号放入自定义字段(成员编号),而不是更有用的(外部id)字段 我的(公认有限的)SQL技能太生疏了,但我想做的是: 如果external\u id字段为空 联系人类型为“个人” 然后将数据从成员号复制到外部id,以获得匹配的内部id号 我尝试了几种不同的方法,但有不同的错误: INSERT INTO test_table (external_id) SELECT member_number FROM member_info INNER JOIN tes
成员编号
),而不是更有用的(外部id
)字段
我的(公认有限的)SQL技能太生疏了,但我想做的是:
external\u id
字段为空成员号
复制到外部id
,以获得匹配的内部id号INSERT INTO test_table (external_id)
SELECT member_number
FROM member_info
INNER JOIN test_table
ON memberinfo.entity_id=test_table.id
WHERE test_table.external_id IS NULL AND test_table.contact_type = "Individual"
我真的需要内部连接吗?我知道WHERE语句通常指的是从中提取的表,而不是插入的表,但我记不起正确的方法。测试表的表结构是什么?你得到的错误是什么?哎呀,就是要包括这个。test_表是civicrm_contacts表的克隆,相当多的字段主要是varchar;错误为:#1062-键“UI_外部_标识符”的重复项“0”不终止。。。。我最终找到了它所指的“重复条目”,结果发现其中有2个“0”值,为空。我不知道为什么会出现其他错误,但最终还是成功了。谢谢…这一个没有做到,但我喜欢简单,我相信这是正确的轨道。我仍然收到一个错误,“#1054-字段列表中的未知列‘成员编号’”
update test_table
set external_id =
if(external_id = '' and contact_type = 'Individual', member_number,external_id)