sql server(嵌套每个结果的插入行)

时间:2017-06-02 11:04:49

标签: sql sql-server

我在sql server(attrib,att_art,art​​)上有3个不同的表。 'attrib'有一个属性列表,'art'有一个项目列表,att_art应该加入两者,如下所示:

ATTRIB
att1
att2
att3
...

ART
ar1
ar2
ar3
...

两个表都有一个唯一的ID,它连接在id_att和id_ar

上的att_art上

这就是我需要做的事情:

对于艺术品和每个attrib的每个项目,我需要在att_art上插入一个新行。像这样:

att1   ar1
att2   ar1
att3   ar1
att4   ar2
att5   ar2
att6   ar2
....

我怎么能这样做?我是sql的新手,而且一直都是压倒性的!

2 个答案:

答案 0 :(得分:1)

使用交叉申请.............

Select * from ATTRIB a
cross apply (select * from ART) b

答案 1 :(得分:1)

最典型的方式是cross join insert

insert into att_art(attrib, art)
    select attrib.attrib, art.item
    from attrib cross join
         art;