2012-02-17 115 views
0

是否可以限制结果mysql选择查询返回一个条件?需要数据库查询帮助

比如我有一个评论表:

REVIEW_ID,member_id,文本,日期

而且我想获得最新10条,但member_id = 123只应一次

这可以通过单个查询来实现吗?

回答

4

我对这个问题的解释:

  • 10条最近的评论
  • 包括最多 1审查,member_id = 123

我要去解决这个:

  • 从满分评论开始SULT设置
  • 去除有member_id = 123 除了最近的一个
  • 从修改后的结果集的所有评论,以最近10个

这里的查询:

create view newest123 as (-- this gets the newest review for member_id 123 
    select * 
    from reviews 
    where member_id = 123 
    order by date desc limit 1 
) 

select * 
from (
    select * from newest123 
    union 
    select *     -- all the reviews that aren't for member_id 123 
    from reviews 
    where member_id != 123) filtered 
order by date desc limit 10 -- sort 'em and take the top 10 
+0

现货!谢谢。 – slash197 2012-02-17 14:40:31