我想获得与其他帐户具有相同ID的帐户,然后最终找出与之相关的帐户(例如,请参见下表)。
表结构
Account ID | flag | id2
123 | Y | 1
456 | N | 1
789 | N | 1
888 | Y | 2
999 | N | 2
我想要的结果
Account ID | id2 | src_account_id
456 | 1 | 123
789 | 1 | 123
999 | 2 | 888
这是我的查询
Select account_id, id2, src_account_id
FROM table1
WHERE id2 IN (Select id2 FROM table1 WHERE flag = 'Y')
但是我对如何获取src_account_id感到困惑。我相当确定它涉及对表本身进行内部联接,但是我仍然不确定如何获取src_account_id。
答案 0 :(得分:0)
您可以尝试一下。使用子查询获取flag = 'Y'
结果集。然后自我加入
SELECT t1.AccountID,t1.id2,t2.AccountID
FROM T t1 inner join (
SELECT id2,AccountID
FROM T
WHERE flag = 'Y'
) t2 on t1.id2 = t2.id2
WHERE t1.flag = 'N'
[结果] :
| AccountID | id2 | AccountID |
|-----------|-----|-----------|
| 456 | 1 | 123 |
| 789 | 1 | 123 |
| 999 | 2 | 888 |
答案 1 :(得分:0)
自行加入id2
和flag
上的表。
SELECT t1."Account ID",
t1.id2,
t2."Account ID" src_account_id
FROM elbat t1
INNER JOIN elbat t2
ON t2.id2 = t1.id2
AND t1.flag = 'N'
AND t2.flag = 'Y';