2012-03-04 71 views
0

我正在構建一個類似Facebook的牆,並希望從當前用戶和所有朋友中檢索所有更新。從當前用戶及其所有朋友獲取更新 - mysql查詢

現在,我只是從用戶的朋友那裏得到更新。我如何包含用戶自己的更新?

SELECT M.msg_id, 
    M.uid_fk, 
    M.message, 
    M.created, 
    U.fname, 
    U.lname, 
    M.uploads 
FROM messages M INNER JOIN users_friends F ON F.friendID = M.uid_fk 

AND F.userID = " . $_SESSION['user_id'] . " 
AND F.status = 2 
      INNER JOIN users U ON U.userID = F.friendID 

      order by M.msg_id desc limit 10 
+0

簡單的「解決辦法」是對自己用戶添加到他的朋友也不要在UI :) – 2012-03-04 10:46:53

+1

這不是一個真正合適的,雖然表現出來 - 這是一個大學項目,因此可以不涉及任何hackery。 – 2012-03-04 10:49:46

回答

1
SELECT <columns> 
FROM (
    SELECT <columns> 
    FROM <friends criteria> 
    UNION 
    SELECT <columns> 
    FROM <current user criteria> 
) x 
order by msg_id desc 
limit 10 
+0

雖然不是那麼簡單。有涉及的加入,以及我需要的命令。 – 2012-03-04 11:36:28

+0

我不明白 - 沒有where子句。 – 2012-03-04 11:53:33

+0

我還沒有爲你提供答案......這是「元SQL」:我留下了不重要的東西(選定的列,「加入」廢話和「其他」廢話),以顯示你的*核心*的解決方案。你應該能夠「填補空白」。順便說一句,如果你得到正確的內部查詢,這將正確地排序行。 – Bohemian 2012-03-05 07:51:00