我确定之前已经询问过这个问题,但我无法想象如何在谷歌中使用它,所以我在这里。将两个完全不同的结果集合为一个
我有用户的表像这样:
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语句代表在UNION和CTE /子查询中没有被选中的列不能做我想要的东西。
完美!我有'CROSS APPLY'卡在我的头上,显然是不正确的。我从来没有遇到过这种情况,所以我想不出正确的语法。谢谢。 –