【发布时间】:2013-11-05 15:27:54
【问题描述】:
我正在做一个选择。 我有一张叫做 vriend 的桌子和一张叫做 gebruiker 的桌子。现在我有 2 个选择,可以给我想要的结果,但我想将它们合并在一起
SELECT g.naam,g.gebruikerID
FROM gebruiker g
INNER JOIN vriend v on g.gebruikerID = v.gebruikerID_Jezelf
WHERE g.gebruikerID IN(SELECT gebruikerID_Jezelf FROM vriend);
SELECT g.naam,g.gebruikerID
FROM gebruiker g
INNER JOIN vriend v on g.gebruikerID = v.gebruikerID_Persoon
WHERE g.gebruikerID IN(SELECT gebruikerID_Persoon FROM vriend);
我想要的是将这 2 个选择语句合并在一起 NOT WITH A UNION 但例如:
选择 1 给出:
不结盟运动 | ID ----------------- 亨克 | 1 卡雷尔 | 2选择 2 给出:
不结盟运动 | ID ----------------- 安德鲁 | 4 皮特 | 5合并会比
不结盟运动 |身份证 |不结盟运动 | ID ------------------------------------------ 亨克 | 1 |安德鲁 | 4 卡雷尔 | 2 |皮特 | 5【问题讨论】:
-
WHERE 子句没有意义,它们只是重复 JOIN...ON 条件中的条件,因此它们始终为真,您可以省略它们。
-
嗯,这是真的,在哪里没有意义,但我仍然如何合并它们,或者你知道一个更好的选择语句,因为问题是人的名字站在gebruiker 表和仅 vriend 表中的 ID。我想要的不仅是显示 ID,还要显示该用户的名称。
-
@user2919513 的解决方案看起来是正确的(但他可以省略整个 where 子句)
-
为什么亨克和安德鲁有关系?为什么卡雷尔与皮特有关?我在您的数据中看不到这种关系。 “合并”是什么意思?它通常表示 UNION,但您已经排除了它。
-
在表格中,vriend 代表谁是朋友,例如 Henk (ID 1) 是 Andrew(ID4) 的朋友,但 ID 已插入表格 vriend 我要显示的是 ID和名字。并且名称来自表 gebruiker
标签: sql database oracle select