如何从不同的表中连接列并将其存储到第三个表中?

时间:2018-04-12 19:00:55

标签: sql sql-server

总结一下我的问题,我有三张桌子

create table a 
(
     id int not null identity,
     aname varchar(16)
)

create table b 
(
     id int not null identity,
     bname varchar(16)
)

create table c 
(
     id int not null identity,
     abname varchar(16) not null,
     random varchar(16) not null
)

我想结束anamebname并将结果存储到abname

2 个答案:

答案 0 :(得分:0)

如果要插入 a b 中所有可能的名称组合,可以执行以下操作:

INSERT INTO c (abname, random)
SELECT CONCAT(a.aname,a.bname), 999
FROM a 
CROSS JOIN b

如果您希望他们通过ID加入,那么您可以这样做:

INSERT INTO c (abname, random)
SELECT CONCAT(a.aname,b.bname), 999
FROM a 
JOIN b ON a.id = b.id

P.D。:我将999插入random,因为该列不为空。

答案 1 :(得分:0)

我在这里添加明显以避免欺骗。如果您愿意,也可以使用'+'代替concat:

INSERT INTO c (abname, random)
SELECT Distinct  a.aname+' '+a.bname , 0
FROM a 
CROSS JOIN b