简体   繁体   English

如何查询像表结构一样的对?

[英]How to query a pair like table structure?

Before Query 在查询之前

User   Friend

A      B
A      C
D      A
F      A

After Query 查询后

User   Friend

A      B
A      C
A      D
A      F

How can I get the result shown. 如何显示结果? I want to get all friends of A. 我想得到A的所有朋友。

With a union: 与工会:

select user, friend 
from t
where user = 'A'
union 
select friend, user
from t
where friend = 'A'

Notice than Union behavior is distinct that is that you expect ( opposed to union all ) 请注意, Union行为distinct您期望的不同(反对union all

Try this 尝试这个

SELECT  USER AS 'User',
        friend AS 'Friend'
FROM    t
WHERE   USER = 'A'
UNION
SELECT  friend ,
        USER
FROM    t
WHERE   friend = 'A'

没有UNION

SELECT CASE WHEN [User]='A' THEN [user] ELSE [friend] END as [A], CASE WHEN [User]='A' THEN [friend] ELSE [user] END AS [Friend Of A] WHERE [user]='A' OR [friend]='A'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM