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

sql server(为每个嵌套结果插入行),sql,sql-server,Sql,Sql Server,我在sql server上得到了3个不同的表(attrib、att_art、art)。 “attrib”有一个属性列表,“art”有一个项目列表,att_art应该将两者结合起来,如下所示: ATTRIB att1 att2 att3 ... ART ar1 ar2 ar3 ... att1 ar1 att2 ar1 att3 ar1 att4 ar2 att5 ar2 att6 ar2 .... 两个表都有一个唯一的id,在id_att和id_ar上的att_ar

我在sql server上得到了3个不同的表(attrib、att_art、art)。 “attrib”有一个属性列表,“art”有一个项目列表,att_art应该将两者结合起来,如下所示:

ATTRIB
att1
att2
att3
...

ART
ar1
ar2
ar3
...
att1   ar1
att2   ar1
att3   ar1
att4   ar2
att5   ar2
att6   ar2
....
两个表都有一个唯一的id,在id_att和id_ar上的att_art上连接

这就是我需要做的:

对于艺术上的每一个项目,同时对于每一个属性,我需要在att_艺术上插入一个新行。像这样:

ATTRIB
att1
att2
att3
...

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

我怎么能这样做?我对sql有点陌生,它让人难以抗拒

使用交叉应用

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

使用交叉应用

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

最典型的方法是
交叉连接
插入

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

最典型的方法是
交叉连接
插入

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

代码如何知道哪个
att
s与哪个
art
s关联?如果一切都有,那没关系(但有点奇怪)。。。否则我们需要另一个数据源。如果您正在寻找一种“手动”输入它们的有效方法,我们也可以提供帮助。代码如何知道哪个
att
s与哪个
art
s关联?如果一切都有,那没关系(但有点奇怪)。。。否则我们需要另一个数据源。如果您正在寻找一种“手动”输入它们的有效方法,我们也可以提供帮助。