這裏是我的選擇查詢語句:爲使MySQL選擇查詢用戶和追隨者的帖子
select distinct posts.*, user_status.status_content
from posts left join user_status on
user_status.user_id = posts.user_id
where posts.user_id
= $userid or posts.user_id in
(select follower from follower where follower.user_id = $userid) order by posts.created_at desc;
我選擇查詢語句工作正常,但輸出是不是我真正想要。 我想要的是從當前用戶和他的追隨者中選擇所有帖子,並且每個帖子的用戶名是他們最新的status content
,狀態由用戶更新,我只想從表中選擇最新的狀態內容,所以我怎麼做?
職位表:
+------------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| user_id | bigint(20) | NO | MUL | NULL | |
| content | text | NO | | NULL | |
| created_at | datetime | YES | | NULL | |
+------------+------------+------+-----+---------+----------------+
user_status表:
+----------------+--------------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+-------------------+-------+
| user_id | bigint(20) | NO | MUL | NULL | |
| status_content | varchar(225) | YES | | Hello World | |
| created_date | timestamp | NO | | CURRENT_TIMESTAMP | |
+----------------+--------------+------+-----+-------------------+-------+
用戶可以更新thier狀態,所以會出現在user_status表中多條記錄。
我的選擇查詢可能會喜歡這樣的輸出:
I feel like s**t today!!!!
Hello world
2013-03-28 22:34:14
-----------------------------
I don't feel very good today
Hello world
2013-03-28 22:34:14
我想要的,假設I feel like s**t today
是最新的狀態,所以它應該輸出,如:
I feel like s**t today!!!!
Hello world
2013-03-28 22:34:14
只有當他想要獲得特定用戶時,此功能纔有效。如果他想要獲得所有用戶的最新狀態,該怎麼辦?然後添加絕對不會工作。 –
@JW是的,獲取所有用戶的最新狀態,以及所有帖子,比如'twitter'!但'用戶名'被'狀態內容'取代。 – towry