2016-06-10 83 views
0

我有一个表结构像以下:返回从许多单个记录到许多表

用户=>浏览历史< =品牌

史表不断下列:用户id,brandId,点

我有一个像下面的查询:

select b.id, sum(h.points),h.brandId 
from brands b left join 
    histories h 
    on b.id = h.brandid and h.userId = 2866 
group by b.id; 

该查询返回我这里品牌用户作出点,并没有作出任何点所有..

我想为brandI添加一个过滤器,以便查询不会返回所有结果,但一次只能得到一个结果,具体取决于发送给查询的brandId ...我如何以及何处可以我添加一个声明,这将返回给我这个查询单个记录?所以基本上我只需要传递brandId =的东西陈述,留下查询它的自我,因为它是现在... :)

回答

1

例如,如果品牌标识是100

select b.id, sum(h.points),h.brandId 
from brands b left join 
    histories h 
    on b.id = h.brandid and h.userId = 2866 
where b.id=100 
group by b.id 
limit 1;