同一表中同一列上的SQL完全外部联接
这可能更像是一个设计问题,但我希望这是可能的,没有太多的巫毒 假设我有一张这样的桌子:同一表中同一列上的SQL完全外部联接,sql,oracle,full-outer-join,Sql,Oracle,Full Outer Join,这可能更像是一个设计问题,但我希望这是可能的,没有太多的巫毒 假设我有一张这样的桌子: SELECT * FROM stuff; id grp 1 a 2 a 3 a 1 b 2 b 4 b 我想得到这样的结果(ID被分组在列中): 这可能吗?我尝试了以下查询 SELECT a.id, b.id FROM stuff a FULL OUTER JOIN stuff b ON a.id = b.id WHERE a.
SELECT * FROM stuff;
id grp
1 a
2 a
3 a
1 b
2 b
4 b
我想得到这样的结果(ID被分组在列中):
这可能吗?我尝试了以下查询
SELECT a.id, b.id FROM stuff a
FULL OUTER JOIN stuff b ON a.id = b.id
WHERE a.grp = 'a' AND b.grp = 'b';
。。。但我只得到公共节点:
a.id b.id
1 1
2 2
我也尝试过在“连接”和“位置”上玩游戏,但似乎没有达到预期的效果
我能在网上找到的最接近的问题是,但我也无法让工会工作
性能不是问题,我可以假设只有两个组
有什么想法吗?你先做了错事,然后又试图修复它。那是行不通的 您想要加入的是
select*from-stuff-where-grp='a'
和select*from-stuff-where-grp='b'
。因此,加入这些:
select a.ID as a, b.ID as b from
(select * from stuff where grp = 'a') a
full join
(select * from stuff where grp = 'b') b
on b.id = a.id
您先做了错误的事情,然后又试图修复它。那是行不通的 您想要加入的是
select*from-stuff-where-grp='a'
和select*from-stuff-where-grp='b'
。因此,加入这些:
select a.ID as a, b.ID as b from
(select * from stuff where grp = 'a') a
full join
(select * from stuff where grp = 'b') b
on b.id = a.id
当你按照另一个问题的答案并尝试使用
联合时发生了什么?我得到的结果与你从下面戈登的建议中得到的结果相似。当你按照另一个问题的答案并尝试使用联合时发生了什么?我得到的结果与你从戈登的建议中得到的结果相似下面。感谢您的快速回复!您的SQL工作得非常好。真不敢相信我没听懂。谢谢你的快速回复!您的SQL工作得非常好。我真不敢相信我没听懂。