从MySQL加入表插入

时间:2016-12-07 12:02:36

标签: mysql wordpress drupal drupal-6

我有两个名为wordpressdrupal.content_field_image的数据库。我尝试将后映像路径从drupal 6迁移到wp。

drupal_filesdrupal.content_field_image包含必要的数据:

drupal.drupal_files有field_image_fid - nid对。 SELECT * FROM `content_field_image` JOIN `files` ON content_field_image.field_image_fid = files.fid; 有fid - 文件路径对(field_image_fid = fid)。

我需要获取包含nid和filepath的表,所以我加入了这些表:

wordpress

现在我需要将数据插入meta_id db,以便:

post_id = 34 + n(n为增量)

nid = meta_key来自已加入的表格

meta_value = fifu_image_url

filepath = WaitForSingleObject ( pi.hProcess, INFINITE );来自已加入的表格

所以我有一些问题:

  1. 如何从连接表中插入?
  2. 如何使类似while循环插入连接表中的每个条目?
  3. 如何在每次插入后使n增加1?

2 个答案:

答案 0 :(得分:0)

  

如何从连接表中插入?

使用INSERT INTO .. SELECT FROM构造

  

如何在每次插入后使n增加1?

将列n声明为auto_increment列。否则,如果您的相关表已经有auto_increment列,则必须自己完成。

  

如何使类似while循环插入连接表中的每个条目

根本不需要。 INSERT .. SELECT构造将所有提取的行插入到引用的表中。

答案 1 :(得分:0)

使用select的插入可能是这样的:

insert into wordpress.table
SELECT (@i:=@i+1), nid, fifu_image_url, filepath
FROM drupal.content_field_image
JOIN drupal.files ON content_field_image.field_image_fid = files.fid;
join (select @i:=34) inc on true

要使其正常工作,您选择的列必须与您要插入的表格具有相同的列。

可以使用此变量@i进行增量int,按照您的需要初始化为34,并按打印结果逐步递增1。