我需要插入两个记录在一个新的mysql表中的每个记录在另一个表的例子:表一
id, name 1, Patrick 2, John
我想在第二个表中为每条记录插入收藏夹网站,每条记录都应默认为facebook和google第二个表应如下所示:表二
table1_id, site 1, facebook 1, google 2, facebook 2, google
vltsax251#
我们可以用cross join将原始表与固定的行列表相乘:
cross join
insert into table2 (table1_id, site) select t1.id, s.site from table1 t1 cross join (select 'google' site union all select 'facebook') s
在最近的MySQL版本(〉= 8.0.19)中,the VALUES statement使语法更简洁:
VALUES
insert into table2 (table1_id, site) select t1.id, s.site from table1 t1 cross join ( values row('google'), row('facebook') ) s(site)
tag5nh1u2#
这是使用inner join执行此操作的另一种方法
inner join
insert into table2 select t1.id, s.site from table1 t1 inner join ( select 'facebook' site union select 'google' site ) as s on s.site <> '' order by t1.id;
Demo here
2条答案
按热度按时间vltsax251#
我们可以用
cross join
将原始表与固定的行列表相乘:在最近的MySQL版本(〉= 8.0.19)中,the
VALUES
statement使语法更简洁:tag5nh1u2#
这是使用
inner join
执行此操作的另一种方法Demo here