Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 插入到具有内部联接的表之间_Mysql_Sql_Phpmyadmin_Civicrm - Fatal编程技术网

Mysql 插入到具有内部联接的表之间

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

CiviCRM中较早的数据导入将一些成员编号放入自定义字段(
成员编号
),而不是更有用的(
外部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)