比如做个好友关系表 有两个列 A,B
A, 好友关系发起者
B, 好友关系确定者
比如 用户X 向 用户Y发起好友请求 ,Y同意
所以我们在 DB中加入这一条记录 说明A列中的X与B列中的Y是好友,由于好友关系是双向的,所以A与B随便哪个删除对方时, 这条记录就无效了
加入记录
A B
X Y
所以一旦有这一条记录
那么
A B
Y X 这样的记录 是不会存在的(新增记录时做好了检测)
现在要完成的就是 如果要查询 X 的所有好友 就只能用两个SELECT 语句
Select A FROM 表 WHERE B=X
Select B FROM 表 WHERE A=X
如果使用 .NET 开发 那么执行后DataAdapter.Fill(临时DataTable) 后临时DataTable只会保存 Select A FROM 表 WHERE B=X 的结果,后面的结果不能保存,
所以想问的就是 如何将上面这两个Select 语句组合成一个Select 语句????
A, 好友关系发起者
B, 好友关系确定者
比如 用户X 向 用户Y发起好友请求 ,Y同意
所以我们在 DB中加入这一条记录 说明A列中的X与B列中的Y是好友,由于好友关系是双向的,所以A与B随便哪个删除对方时, 这条记录就无效了
加入记录
A B
X Y
所以一旦有这一条记录
那么
A B
Y X 这样的记录 是不会存在的(新增记录时做好了检测)
现在要完成的就是 如果要查询 X 的所有好友 就只能用两个SELECT 语句
Select A FROM 表 WHERE B=X
Select B FROM 表 WHERE A=X
如果使用 .NET 开发 那么执行后DataAdapter.Fill(临时DataTable) 后临时DataTable只会保存 Select A FROM 表 WHERE B=X 的结果,后面的结果不能保存,
所以想问的就是 如何将上面这两个Select 语句组合成一个Select 语句????
union all
Select B FROM 表 WHERE A=X