2016-12-07 126 views
0

我有两个名为drupalwordpress的数据库。我尝试将帖子图像路径从drupal 6迁移到wp。从MySQL插入表加入表

drupal.content_field_imagedrupal_files包含必要的数据:

drupal.content_field_image已field_image_fid - NID对。 drupal.drupal_files有fid - 文件路径对(field_image_fid = fid)。

我需要同时包含NID和文件路径表,所以我加入这个表:

SELECT * 
FROM `content_field_image` 
JOIN `files` ON content_field_image.field_image_fid = files.fid; 

现在我需要将数据插入到wordpress分贝使:

meta_id = 34 + n(n为增量)

post_idnid =从连接表

meta_key = fifu_image_url

meta_value =从连接表filepath

所以我有一些问题:

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

使用“从select中插入”查询类型。你用每个icrement插入所有的值。你也可以使用连接。但请确保列名称相同。首先尝试在本地进行配置。 –

回答

0

如何从连接表中插入?

使用INSERT INTO .. SELECT FROM构建

每次插入后如何使用n递增1?

声明该列nauto_increment列。否则,如果您的相关表格已有auto_increment列,则必须自行完成。

如何使同时般的循环中插入从连接表

每个条目你并不需要,在所有。 INSERT .. SELECT构造会将所有提取的行插入到您的引用表中。

0

你有选择插入可能是这样的:

insert into wordpress.table 
SELECT (@i:[email protected]+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 

要使其工作,你的选择必须的列有要插入表的相同列。

递增的int可以用这个变量@i来完成,初始化为34,就像你想要的一样,然后按照打印的结果1递增1。