我有兩個表:消息(消息用戶張貼),喜歡(用戶和消息之間的多對多關係 - 它表示user1喜歡message5)。SQL - 從兩個表中按列排序
messages
---------
id, id_user, message, created_at
likes
-----
id_user, id_message, created_at
如果我發送消息,它會進入消息表。如果我喜歡某人的消息,則會在喜歡錶中創建一條新記錄(is_user = me,id_message =我喜歡的消息)。
問題是,我想顯示我的行動=消息的歷史和喜歡在一個列表中排序方式「created_at」。
喜歡的東西:
- 1/1/2010 i sent message "aaa"
- 2/1/2010 i sent message "bbb"
- 3/1/2010 i liked somebodys's message "ccc"
- 4/1/2010 i send message "ddd"
編輯 更糟糕的是,我也想表現出我喜歡的狀態的詳細信息:
- 3/1/2010 i liked somebodys's message **"ccc"**
如何做到這一點?
感謝馬克。我不需要整個字符串,這是應用程序的責任。我只需要我喜歡的消息的文本,這可以很容易地使用連接完成。 – PetrB 2010-10-03 10:20:11
我決定採用創建新的「動作」表的方式,但我堅持使用數據庫模式。就目前而言,動作表具有列action_id,created_at,discriminator。我還應該在那裏放置什麼以及如何查詢它? – PetrB 2010-10-03 10:43:19
@PetrB:這看起來不錯。您不需要複製此表中其他表中的數據。 – 2010-10-03 10:45:50