我正在製作一個小型的CMS,在那裏你可以有朋友,並張貼在他們的牆上。我正在製作一個頁面,您可以在其中查看您的朋友發佈的所有帖子(在他們的個人資料中),但是我無法使其正常運行。從朋友處獲取個人資料文章
表:朋友
+---------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------+------+-----+---------+----------------+
| friend_id | int(10) | NO | PRI | NULL | auto_increment |
| user1_id | int(10) | NO | | NULL | |
| user2_id | int(10) | NO | | NULL | |
| friends_since | int(10) | NO | | NULL | |
+---------------+---------+------+-----+---------+----------------+
表:profile_posts
+----------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+---------+------+-----+---------+----------------+
| post_id | int(12) | NO | PRI | NULL | auto_increment |
| posted_user_id | int(12) | YES | | NULL | |
| user_id | int(12) | YES | | NULL | |
| date_posted | int(11) | YES | | NULL | |
| total_likes | int(12) | YES | | NULL | |
| users_liked | text | YES | | NULL | |
| total_dislikes | int(12) | YES | | NULL | |
| users_dislikes | text | YES | | NULL | |
| message | text | YES | | NULL | |
+----------------+---------+------+-----+---------+----------------+
基本上,如果我想確定用戶是否已經張貼在他們的個人資料的現狀,posted_user_id和USER_ID列在table_posts必須匹配(posted_user_id是發佈的帖子的用戶ID,而user_id是user_id是發佈該消息的人員的ID)。
但是,我已經多次嘗試獲取朋友的狀態。
SELECT *
FROM `friends` AS `f`
LEFT JOIN `profile_posts` AS `pp`
ON `pp`.posted_user_id = `pp`.user_id
WHERE
`f`.user1_id != 2 OR
`f`.user2_id != 2
ORDER BY `pp`.`date_posted` DESC
LIMIT 0,15;
(華友世紀不工作:d)
SELECT `f`.*,`pp`.*,
IF(`f`.user1_id=2, `f`.user2_id, `f`.user1_id) AS `uid`
FROM `friends` AS `f`
LEFT JOIN `profile_posts` AS `pp`
ON `pp`.posted_user_id =`uid`
WHERE
`f`.user1_id = `uid` OR
`f`.user2_id = `uid`
ORDER BY `pp`.`date_posted` DESC
LIMIT 0,15;
我不知道如何誠實地做到這一點,它開始讓我憤怒,我想不出如何做到這一點。 :/
yipee另一個Facebook的「克隆」 – 2013-08-18 20:58:07
都能跟得上。不是Facebook的克隆。 –
你能提供基於它的樣本數據和期望的輸出嗎? – peterm