繁体   English   中英

MySQL从多个选择查询插入数据

[英]mysql insert data from multiple select queries

我正在做的是我需要改进的地方:

INSERT form_data (id,data_id, email) 
SELECT '',fk_form_joiner_id AS data_id
     , value             AS email 
  FROM wp_contactform_submit_data 
 WHERE form_key='your-email'

这只是收到电子邮件,现在很好,但是还不够,因为我有很多不同的form_key值需要导入到不同的列中,我知道我可以使用foreach循环和更新通过php来做到这一点,但这需要纯粹在mysql中完成。

所以我该怎么做:插入form_data(id,data,email,name,surname,etc)选择[..],选择[..] ....

数据以一种最可笑的方式存储在一个表IN ONE CELL中,其中另一个单元格指示实际数据是什么: http : //drp.ly/Jhx3J (屏幕截图)

请帮忙

在您的问题中,所需的其他数据存储在哪里并不明显,但也许您正在寻找某种东西,例如:

INSERT form_data (id,data_id, email,city) 
SELECT A.fk_form_joiner_id AS data_id
     , A.value             AS email 
     ,B.value               AS city
  FROM wp_contactform_submit_data A,
       wp_contactform_submit_data B
  WHERE A.form_key='your-email' AND 
        B.form_key='your-city' and
        A.fk_form_joiner_id=B.fk_form_joiner_id

可以很容易地扩展此逻辑以处理少量的多个字段-如果有时缺少一个或多个数据值,则必须在A和B之间进行外部联接才能获取所有记录。

显然,您必须为每个列创建一个新的联接,但这以某种形式是必需的,以无论如何要完成您的任务。

wp_contactform_submit_data(fk_form_joiner_id,form_key)上的索引也将使此查询相当有效。

没问题,您只需几次加入wp_contactform_submit_data(每个值一个):

INSERT INTO form_data (data_id, email, name)
SELECT fk_form_joiner_id as data_id, email, name
FROM (SELECT fk_form_joiner_id, value as email
      FROM wp_contactform_submit_data
      WHERE form_key='your-email'
      ) as emails
JOIN (SELECT fk_form_joiner_id, value as name
      FROM wp_contactform_submit_data
      WHERE form_key='your-name') as names
  USING (fk_form_joiner_id)
;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM