有没有办法根据具有多行结果的查询插入行?
这样的事情:
For each row in (select brand, date from table_A where ...) insert into table_B (field_1, field_2) VALUES (table_A.brand, table_A.date);
使用SQLite3(首选)/ MySQL。
由于
这是我尝试过的:
insert into media_tags (fk_id_media, fk_id_tag) VALUES ( (select id_media from media where fullpath like "%C32%") , (select id_tag from tags where tagname='digital') )
答案 0 :(得分:3)
只是做:
insert into table_B (field_1, field_2)
select brand, date
from table_A
where...
这将在table_B中插入从SELECT返回的所有行。
在您的情况下,您可以更改::
insert into media_tags (fk_id_media, fk_id_tag)
values (
(
select id_media
from media
where fullpath like "%C32%"
), (
select id_tag
from tags
where tagname = 'digital'
)
)
到
insert into media_tags (fk_id_media, fk_id_tag)
select id_media, (
select id_tag
from tags
where tagname = 'digital'
)
from media
where fullpath like "%C32%"
虽然这只会给你fk_id_media中的变量值。 fk_id_tag总是一样的,但看起来你想要那样。