Я уверен, что это было задано раньше, но я не могу придумать, как его фразировать в Google, поэтому я здесь.Объедините два несопоставимых набора результатов в один
У меня есть таблица пользователей, как так:
create table MyUser
(
Id int
)
insert into MyUser(Id)
select 1 union
select 2 union
select 3 union
select 4 union
select 5
И таблица объектов, как так:
create table Object
(
Id int
)
insert into Object(Id)
select 1 union
select 2 union
select 3
То, что я хочу в качестве результирующего набора это (первый столбец MyUser. Id, второй - Object.Id):
1, 1
1, 2
1, 3
2, 1
...
В принципе, я хочу строку для каждой комбинации этих двух таблиц. Это question аналогично, но я не могу полагаться на значения в одной таблице, которые меньше или больше значений. Итак, в основном, я считаю, что то, что я хочу, можно описать как декартово произведение между двумя таблицами без отношения.
Как бы я это сделал? Я играю с CTE/подзапросами и UNION, но я не могу понять, как отфильтровать фиктивные значения для операторов UNION, которые представляют собой столбец, который не выбран в этой части UNION, и подзапросы CTE/не в состоянии делать то, что я хочу.
идеальный! У меня «CROSS APPLY» застрял у меня в голове, что, очевидно, не так. Я никогда не был в этой ситуации раньше, поэтому я не мог придумать правильный синтаксис. Благодарю. –