Получать сообщения между друзьями в базе данных - PullRequest
0 голосов
/ 23 декабря 2011

Я создал структуру базы данных, в которой пользователи могут устанавливать «дружеские связи» между собой, как на Facebook.
Каждый пользователь может сохранить текст в таблицу tbl_Statuses, и только его друзья могут видеть эти сообщения.
Но у меня проблемы с SQL :(

tbl_Friends{UserId, FriendId, Accepted}
tbl_Statuses{StatusId, Text, UserId}

Я пытаюсь получить статусы:
- что я пишу
- что пишут мои друзья

Я что-то пробовал, но не могу понять :(

select s.* 
from tbl_Statuses s left join tbl_Friends f on s.userId = f.UserId
where s.userId = f.UserId

Ответы [ 2 ]

2 голосов
/ 23 декабря 2011
SELECT *
FROM tbl_Statuses
WHERE UserId = @MyUserId 
OR UserId IN (SELECT FriendId FROM tbl_Friends WHERE UserId = @MyUserId AND Accepted = 1)
0 голосов
/ 23 декабря 2011
-- What you say
SELECT * 
  FROM tbl_StatuseS
 WHERE UserId = @userId
union
-- What your friends say
SELECT s.*
  FROM tbl_Friends f
  join tbl_Statuses s on s.userId = f.FriendId
 WHERE f.UserId = @userId
   and f.Accepted = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...