右键连接每一行

时间:2011-02-25 09:50:25

标签: tsql

是否有一种简单的方法可以执行以下操作而无需重复使用临时表或游标?

“表1右连接表2,但表1中的每一行。”

例如:

Table 1, Row 1 right join Table 2.  
Table 1, Row 2 right join Table 2.  

等。
感谢

更新1

对不起,我应该更详细地解释一下。

表格定义:
表1:

TABLE [dbo].[Table_1]
(  
          [id] [int],  
          [name] [nvarchar](max) NULL,  
          [id_table2] [int] NULL)

表2。

TABLE [dbo].[Table_2]  
(  
[id] [int] NOT NULL,  
[code] [nvarchar](max) NULL,  )

表1数据:

Table 1 Data:  
1       Prov1    1  
2       Prov2    2  

<击> NULL      NULL NULL
表2数据:

Table 2 Data:  
1    01  
2    02  
3    03  
4    04  
5    05  

<击> NULL     <击> NULL
如果我执行以下操作:

select * from Table_1 as t1  
right join Table_2 as t2 on  
t1.id_table2 =  
t2.id

结果:

1       Prov1    1      1    01  
2       Prov2    2      2    02  
NULL    NULL    NULL    3    03  
NULL    NULL    NULL    4    04  
NULL    NULL    NULL    5    05

结果我想:

“在每张桌子上排右连接”

1    Prov1    1       1    01  
1    Prov1    NULL    2    02  
1    Prov1    NULL    3    03  
1    Prov1    NULL    4    04  
1    Prov1    NULL    5    05

2    Prov2    1       1    01  
2    Prov2    NULL    2    02  
2    Prov2    NULL    3    03  
2    Prov2    NULL    4    04  
2    Prov2    NULL    5    05

1 个答案:

答案 0 :(得分:4)

我认为你应该寻找一个CROSS JOIN而不是RIGHT JOIN。