我有mysql的评论表,像这样。Mysql如何从同一个表中的单个查询中获取2组结果?
+------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+----------------+
| userid | int(11) | NO | | 0 | |
| comment | char(255) | NO | | NULL | |
| content | int(11) | NO | MUL | 0 | |
| ratings | int(11) | NO | | 0 | |
| datetime | datetime | NO | | NULL | |
| ip | int(10) unsigned | NO | | NULL | |
| is_updated | tinyint(2) | NO | | 0 | |
| record_num | int(11) | NO | PRI | NULL | auto_increment |
+------------+------------------+------+-----+---------+----------------+
现在我可以从这个和用户名从另一个表中使用INNER JOIN查询这样取得评论。
我可以得到最高3评论ORDER BY comments.ratings DESC
SELECT comments.userid, users.username, comments.comment, comments.ratings, comments.datetime, comments.record_num , content.uploader , content.anonymous
FROM comments
LEFT JOIN users ON comments.userid = users.record_num
LEFT JOIN content ON comments.content = content.record_num
WHERE comments.content = ? ORDER BY comments.ratings DESC limit 3
和
得到规则的意见ORDER BY comments.datetime DESC。
SELECT comments.userid, users.username, comments.comment, comments.ratings, comments.datetime, comments.record_num , content.uploader , content.anonymous
FROM comments
LEFT JOIN users ON comments.userid = users.record_num
LEFT JOIN content ON comments.content = content.record_num
WHERE comments.content = ? ORDER BY comments.datetime DESC limit ?, ?
什么,我tryingf做的是向用户展示前3位的意见通过由comments.datetime DESC,然后再定期评价他们为了收视率。
现在我怎样才能将两个mysql查询合并成一个?
感谢您的输入什么,就是一些大的查询, – AMB
@AMB他们是你的两个疑问 - 我只是格式化他们不同的稍微容易阅读。有这么走了进去 –
没有太多额外的工作有没有办法,我可以显示甚至重复的值也一样,我的意思是如果只有3个评论,那么它应该由comments.ratings DESC和另一组返回6个评论,第一组订单ORDER BY comments.datetime DESC – AMB