我知道这个问题很相似,这一个: 对称交叉连接和这一个了: 在SQL从杂交组合(不排列)加入
但是,关于如果我们有两个不同的表,还有什么好说的A和B:
select A.id,B.id from A cross join B
我要考虑对(a,b)
等于(b,a)
我知道这个问题很相似,这一个: 对称交叉连接和这一个了: 在SQL从杂交组合(不排列)加入
但是,关于如果我们有两个不同的表,还有什么好说的A和B:
select A.id,B.id from A cross join B
我要考虑对(a,b)
等于(b,a)
select A.id aid,B.id bid
from A inner join B on a.id <= b.id
union
select B.id,A.id
from A inner join B on b.id < a.id
如果你想成为更复杂的:
select distinct
case when a.id<=b.id then a.id else b.id end id1,
case when a.id<=b.id then b.id else a.id end id2
from A cross join B
在我的小不科学的烘烤关与小表,后者为快。 及以下的case
表现写成子查询。
select distinct
(select MIN(id) from (select a.id union select b.id)[ ]) id1,
(select MAX(id) from (select a.id union select b.id)[ ]) id2
from A cross join B