【发布时间】:2011-12-06 23:38:22
【问题描述】:
CiviCRM 中的早期数据导入将一些成员编号放入自定义字段 (member_number),而不是更有用的 (external_id) 字段。
我的(诚然有限的)SQL 技能太生疏了,但我想做的是:
- 如果
external_id字段为空, - 并且
contact_type是“个人” - 然后将数据从
member_number复制到external_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"
我真的需要 INNER JOIN 吗?而且我知道 WHERE 语句通常是指您从中提取的表,而不是您要插入的表,但我不记得正确的方法。
【问题讨论】:
-
test_table 的表结构是什么?你遇到了什么错误?
-
哎呀,意味着包括那个。 test_table 是 civicrm_contacts 表的克隆,不少字段大多是 varchar;错误是:#1062 - 键 'UI_external_identifier' 的重复条目 '0'
-
没关系....我终于找到了它所指的“重复条目”,结果发现NULLS中有2个“0”值。不知道为什么会出现其他错误,但最终让它工作。谢谢...
标签: mysql sql phpmyadmin civicrm