0

我有桌子喜欢

1)持有主数据的用户喜欢

用户 ID 名称 OtherColumns
1 半石无
2 Banshi2 什么都没有
3 Banshi3 什么都没有

2)第二个表“朋友”持有数据喜欢

ID UserID FriendID FriendCategory
1 1 2 2
2 2 1 2
3 4 1 2
4 1 4 2

3)第三个表“订阅者”持有数据喜欢

ID SubscribersID SubscribToID FriendCategory
1 1 3 3
2 1 4 3

4)第四表“FriendCategory”点赞

身份证名称
2个朋友
3 个订阅者

5)第五表“帖子”包含类似的数据

PostID 用户 ID 帖子           
1 2 你好,亲爱的 Banshi2 的帖子
2 3 你好,亲爱的 Banshi3 的帖子
3 4 你好,亲爱的 Banshi4 的帖子

现在成为用户 1 我需要像 A) 我需要数据如果我的朋友发布 B) 我需要数据如果我订阅了 C) 如果用户是我的朋友也订阅了那么它必须显示朋友而不是我订阅

我的数据有点像

用户 ID 名称 帖子类别
2 Banshi2 你好亲爱的 Banshi2 朋友的帖子
3 Banshi3 你好 亲爱的 Banshi3 我是订阅者
4 Banshi4 Hello Dear Post By Banshi4 Friends

请指导我如何在 Sql Server 2008 中获得这样的输出

在此先感谢 Banshi

4

2 回答 2

0

我不确定你能不能试试这个并告诉我,

select u.userid,u.name,p.post,f.name from 
User u join Friends fr on u.userid=fr.userid
join FriendCategory f on fr.FriendID=f.id
join Posts p on u.userid=p.userid
order by u.userid;
于 2012-12-25T16:01:39.590 回答
0

用于获取朋友发布的数据

SELECT
  u.UserID, u.Name , p.Post , fc.Name 
FROM
  users as u,
  FriendCategory as fc,
  Subscribers as s,
  Friends as f,
  Posts as p 
WHERE
  f.UserID=1
  and fc.id=f.FriendCategory
  and p.UserID = f.FriendID
group by fc.Name

您可以类似地为我订阅的数据获取数据。

c)如果用户是我的朋友也订阅了,那么它必须显示朋友而不是我订阅

好吧,我没明白你在这里想说什么。

于 2012-12-25T16:01:54.060 回答