2017-01-16 162 views
0

我有兩個表格,art和art_tag_art。 這是列藝術表:如何從其他表插入表格

id 
title 
slug 
image 

這個數值藝術表 enter image description here

這列art_tag_art

id 
art_id 
tag_id 

值art_tag_art enter image description here

我想複製所有的藝術。 id到art_tag_art.art_id並同時複製所有內容新行中的art_tag_art.tag_id(已存在)。

我曾嘗試和搜索幾個MySQL的句法插入和選擇:

select id into @aid from art; 
select tag_id into @tid from art_tag_art; 
insert into art_tag_art (art_id, tag_id) values (@aid,@tid); 


INSERT INTO art_tag_art (art_id, tag_id) 
SELECT art.id, art_tag_art.tag_id 
FROM art, art_tag_art order by id; 

但沒有任何工程。這一次,我得到一個錯誤信息:Error Code: 1364. Field 'id' doesn't have a default value

期望值: enter image description here

+1

你的Id是一個自動增量字段嗎? –

+0

@AmeyaDeshpande,是的。 –

+0

你可以把一些虛擬數據給它。所以很容易理解你正在嘗試做什麼 –

回答

2

試試這個:

select [email protected] from art order by id; select [email protected] from art_tag_art; insert into art_tag_art (art_id, tag_id) values (@aid,@tid);
INSERT INTO art_tag_art (art_id, tag_id) SELECT art.id, art_tag_art.tag_id FROM art, art_tag_art order by id;

+0

謝謝先生,我試過了,但在新行中的值tag_id並不是我所期望的。 –

0

你能做到這一點,但它不舉目皆是明智的

insert into art_tag_art(art_id,tag_id) 
select a.id ,(select at.tag_id from art_tag_art at where at.id = a.id - 25) 
from art a; 
+0

謝謝先生。我會試一試 –