我有两个表一个用于topic_likes&一个用于user_comments.I必须获得类似&的最新更新来自这些表的评论。下面给出的是sql: -
SELECT (required fields...)
LEFT JOIN topic_likes AS TL ON (TL.delete_status=0 AND TL.user_id!=$user_id)
LEFT JOIN user_comments AS UC ON (UC.delete_status=0 AND UC.user_id!=$user_id)
WHERE
(TL.created_date >= '$lastLogin' OR UC.created_date >= '$lastLogin'
ORDER BY UC.created_date desc,TL.created_date desc
LIMIT $limit
我通过两个表中的两个字段给出了顺序(UC.created_date,TL.created_date) 但它没有根据topic_likes中的created_date对结果集进行排序。它只根据user_comments表对结果进行排序
但如果我删除限制条件,它会给出正确的结果...... !!
任何建议表示赞赏
答案 0 :(得分:0)
这是一种奇怪的方法。如果要使用单个查询显示用户的喜欢和评论,您应该联合结果。例如:
SELECT * FROM
(
SELECT id, `date`, 'like' as `type` FROM topic_likes
UNION
SELECT id, `date`, 'comment' as `type` FROM user_comments
) a order by a.date DESC limit 5;
结果应与此类似:
但是有一些限制。每个子查询的列数必须匹配。