我有以下表格
person: id,name
1, mani
2, senthil
3, jack
4, alan
relation: relname,id1,id2 (id1 and id2 refers to person.id)
rel1, 1,3
rel2, 2,3
rel1, 4,1
Run Code Online (Sandbox Code Playgroud)
我想形成一个查询,返回一个又一个相关的人的 id。查询应返回:
1
3
2
3
4
1
Run Code Online (Sandbox Code Playgroud)
这(1,3)是对,然后是(2,3)等等。
你能形成这样的查询吗?
一种方式(假设id1,id2是复合PK以避免重复)
SELECT id
FROM
(
select id1 as id, id1,id2 from relation
union all
select id2 as id, id1,id2 from relation
) T
ORDER BY id1,id2
Run Code Online (Sandbox Code Playgroud)
如果您的 RDBMS 支持,UNPIVOT您可以通过对表进行一次扫描来完成此操作。
| 归档时间: |
|
| 查看次数: |
4043 次 |
| 最近记录: |