我有两个表:消息(消息用户张贴),喜欢(用户和消息之间的多对多关系 - 它表示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