group by 多表多字段关联查询
自己遇到一个问题,就是开始的时候需要一个字段的名字和数量,但是是同个一个表的。
数据库代码如下:
select
l.batchnum,count(l.batchnum) batcount
from ts_outphone_list l join ts_outphone_batch b on l.batchnum=b.batchnum left join om_user_list om on l.datamanager=om.login_id left join ts_outphone_supplier tos on tos.id=om.suppliercode where b.ctime>'2014-05-01' and b.ctime<'2014-06-24 23:59:59' and tos.id=om.suppliercode
group by l.batchnum;
现在我需要新添加一张表,并且需要查出一个新的字段。
想了很多方法,比如直接在select后面加这个新的字段,并且关联这张表但是都不能实现这个功能。
其实最关键的两句就是:
l.batchnum,count(l.batchnum) batcount
和
group by l.batchnum;
所以只要在group by 后面加上新的字段就可以查出你想要显示的新内容
select
tos.suppliername,l.batchnum,count(tos.suppliername) batcount
from ts_outphone_list l join ts_outphone_batch b on l.batchnum=b.batchnum left join om_user_list om on l.datamanager=om.login_id left join ts_outphone_supplier tos on tos.id=om.suppliercode where b.ctime>'2014-05-01' and b.ctime<'2014-06-24 23:59:59' and tos.id=om.suppliercode
group by tos.suppliername,l.batchnum;
只要在多关联一个字段就可以了
如果需要更多的表,自己添加就可以了
希望对你们有用