如何根据两个表中的字段对结果集进行排序

时间:2014-01-09 06:02:49

标签: php mysql sql cakephp-1.3

我有两个表一个用于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表对结果进行排序

但如果我删除限制条件,它会给出正确的结果...... !!

任何建议表示赞赏

1 个答案:

答案 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;

结果应与此类似:

Result

但是有一些限制。每个子查询的列数必须匹配。