Право присоединиться к каждому ряду - PullRequest
2 голосов
/ 25 февраля 2011

Есть ли простой способ сделать следующее, не возвращаясь к временным таблицам или курсорам?

«Таблица 1 присоединяется к таблице 2 справа, но для каждой строки таблицы 1».

Например:

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

1008 * Etc. * Спасибо

Обновление 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»

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 Ответ

4 голосов
/ 25 февраля 2011

Я думаю, вы должны искать CROSS JOIN вместо RIGHT JOIN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...