Как выбрать из таблицы один со всеми записями из таблицы 2 - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь отобразить все записи, которые содержит таблица 1, каждая запись со всеми записями из таблицы 2:

Table 1

company  adress
------------------
 A        AdressX 
 B        AdressY
 C        AdressZ

Table 2

Product   Price
----------------
 P1        50 
 P2        60

Result :

company  Product
----------------
 A        P1 
 A        P2
 B        P1
 B        P2
 C        P1
 C        P2

Ответы [ 3 ]

2 голосов
/ 27 мая 2019

Это было бы перекрестным соединением.

SELECT t1.company,
       t2.product
       FROM [table 1] t1
            CROSS JOIN [table 2] t2
       ORDER BY t1.company,
                t2.product;
1 голос
/ 27 мая 2019

Использование CROSS APPLY возможен этот ожидаемый вывод:

SELECT T1.company, T2.Product
FROM Table1 T1
CROSS APPLY Table2  T2
ORDER BY T1.company, T2.Product

Демонстрация на дБ <> fiddle

Демонстрация с образцами данных:

DECLARE @Table1 TABLE (company VARCHAR (1), adress VARCHAR (10));

INSERT INTO @Table1 (company, adress) VALUES
('A', 'AdressX'), 
('B', 'AdressY'),
('C', 'AdressZ');

DECLARE @Table2 TABLE (Product VARCHAR (2),   Price INT);

INSERT INTO @Table2 (Product, Price) VALUES
('P1', 50), 
('P2', 60);

SELECT T1.company, T2.Product
FROM @Table1 T1
CROSS APPLY @Table2  T2
ORDER BY T1.company, T2.Product

Вывод:

company Product
---------------
A       P1
A       P2
B       P1
B       P2
C       P1
C       P2
0 голосов
/ 27 мая 2019

Следующий запрос выберет все данные из обеих таблиц (не связанные или не связанные).

SELECT * 
FROM TABLE 1
OUTER APPLY
(
SELECT * 
FROM Table 2
) AS Table 2

Если есть внешний ключ, вы можете использовать LEFT JOIN (SELECT)

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