我有两个表,表 reseau_stream 有关于我的用户帖子的不同信息。用户可以分享其他人的帖子。表 reseau_share 建立了这种联系(您有下面两个表的详细信息)。现在,如果用户分享其他人的帖子,我必须使用 reseau_share 的日期时间来订购我的查询。
我没有太多的 MySQL 技能,但在一些帮助下,我终于得到了下面的查询。仅当 reseau_share 中有一行时它才有效。如果 reseau_share 为空,则查询返回 0 结果。我真的不明白为什么。任何人都可以找出原因吗?干杯。
表 reseau_stream
id user_id content datetime
1 100 Lorem Ipsum1 2013-03-04 19:35:02
2 100 Lorem Ipsum2 2013-03-04 12:35:02
表 reseau_share
id user_id target_id stream_id datetime
-------------------- EMPTY ------------------------
查询
SELECT reseau_stream.id,
reseau_stream.user_id,
reseau_stream.content,
IF(reseau_stream.user_id = 100, reseau_stream.datetime, reseau_share.datetime) as datetime
FROM reseau_stream, reseau_share
WHERE reseau_stream.id
IN (
SELECT id
FROM reseau_stream
WHERE user_id = 100
UNION
SELECT stream_id
FROM reseau_share
WHERE user_id = 100
) ORDER BY datetime DESC;