我有一张名字的桌子,他们共享同一个位置
John NY
Paul NY
Andrew NY
Eva NY
Patrick NJ
Sally CA
Aby NJ
现在,我创建了一个脚本,这是用户可以选择名称的标准(例如:Name ='John') 选择名称后,列中还会列出纽约州的所有其他名称(Paul,Andrew,Eva)。
我可以使用下面的plsql创建它,但你永远不知道将选择谁。所以我不能硬编码。它看起来很简单,但我正在努力。我想要一种无需选择使用标准即可进行调音的方法。
选择d.name,d.location,other_name
来自MYwork d
其中d.location ='NY'
和d.name!='John'
答案 0 :(得分:0)
如果只有2个级别,那么自我加入是我最喜欢的方法:
SELECT d2.name, d.location
FROM (SELECT DISTINCT location FROM Yourtable WHERE name = 'John') L
JOIN Yourtable L2 ON L.location = L2.location
如果位置/名称不同,也可以这样写:
SELECT d2.name, d.location
FROM Yourtable l
JOIN Yourtable L2 ON L.location = L2.location
WHERE l.name = 'John'
我不确定您希望列的外观。您可能会在此之后:
SELECT d.name, d.location, d2.name
FROM Yourtable l
JOIN Yourtable L2 ON L.location = L2.location
WHERE l.name = 'John'
AND l2.name <> 'John'