使用INNER JOIN在表之间插入INTO

时间:2011-12-06 23:38:22

标签: mysql sql phpmyadmin civicrm

CiviCRM中的早期数据导入将一些成员编号放入自定义字段(member_number)而不是更有用的(external_id)字段。

我的(公认有限)SQL技能太生疏了,但我想做的是:

  1. 如果external_id字段为空,
  2. contact_type是“个人”
  3. 然后将数据从member_number复制到external_id以获取匹配的内部ID号。
  4. 我尝试了一些不同的错误:

    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语句通常指的是你要从中提取的表,而不是你要插入的表,但我记不起正确的方法。

1 个答案:

答案 0 :(得分:2)

update test_table
set external_id = 
if(external_id = '' and contact_type = 'Individual', member_number,external_id)