2
CiviCRM中較早的數據導入將一些成員號放入自定義字段(member_number
)中,而不是更有用的(external_id
)字段。INSERT INTO具有INNER JOIN的表之間
我(固然有限)SQL技能實在是太生疏,但我想要做的是:
- IF
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"
難道我甚至真的需要內這一JOIN?我知道WHERE語句通常是指你從中拉出來的表格,而不是你插入的表格,但我不記得正確的方式來做到這一點。
test_table的表結構是什麼?你得到的錯誤是什麼? – ysrb
哎呀,意在包括這一點。 test_table是civicrm_contacts表的一個克隆,其中很多字段大多是varchar;錯誤是:#1062 - 關鍵'UI_external_identifier'重複條目'0' – briank
Nevermind ....我終於追蹤到它所指的「重複條目」,結果發現有2個「0」值與NULLS 。不知道爲什麼會出現其他錯誤,但最終讓它工作。謝謝... – briank