从MySQL插入表加入表
问题描述:
我有两个名为drupal
和wordpress
的数据库。我尝试将帖子图像路径从drupal 6迁移到wp。从MySQL插入表加入表
表drupal.content_field_image
和drupal_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_id
nid
=从连接表
meta_key
= fifu_image_url
meta_value
=从连接表filepath
所以我有一些问题:
- 如何从连接表使插入?
- 如何让类似循环插入连接表中的每个条目?
- 如何在每次插入后使n增加1?
答
如何从连接表中插入?
使用INSERT INTO .. SELECT FROM
构建
每次插入后如何使用n递增1?
声明该列n
为auto_increment
列。否则,如果您的相关表格已有auto_increment
列,则必须自行完成。
如何使同时般的循环中插入从连接表
每个条目你并不需要,在所有。 INSERT .. SELECT
构造会将所有提取的行插入到您的引用表中。
答
你有选择插入可能是这样的:
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。
使用“从select中插入”查询类型。你用每个icrement插入所有的值。你也可以使用连接。但请确保列名称相同。首先尝试在本地进行配置。 –