根据多个表中的类别从表中选择主数据

时间:2012-12-25 15:24:28

标签: sql

我有像

这样的表格

1)拥有主数据的用户

User ID   Name    OtherColumns
1         Banshi   Nothing
2         Banshi2  Nothing 
3         Banshi3  Nothing 

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”喜欢

ID      Name
2       Friends
3       Subscribers

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

PostID   UserID  Post           
1         2      Hello Dear Post By Banshi2
2         3      Hello Dear  Post By Banshi3
3         4     Hello Dear  Post By Banshi4 

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

我的数据类似


UserID      Name        Post                          Category
2          Banshi2    Hello Dear Post By Banshi2     Friends
3          Banshi3    Hello Dear Post By Banshi3     I Am Subcriber 
4          Banshi4    Hello Dear Post By Banshi4     Friends

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

先谢谢 板石

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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)如果用户是我的朋友订阅,那么它必须显示朋友   不是我订阅了

好吧,我没听懂你在这里说的话。