这里有三张tablemb_branch
,mb_item
和mb_sell
。而mb* 是从迷你酒吧里拿的。
1.我想列出mb_branch
中的所有分支名称,并计算每个分支在给定日期的项目。假设它是2023-03-11
。
1.因此,我选择mb_branch
中的所有br.name
,并计算mb_item
中所有与每个br.uid
相关的行
1.我在mb_branch
中有10行,但只显示2行。因为在1中给定的日期中存在项目。)
1.我希望显示每个br.name
,即使mb_item
中不存在行或显示为0。
这是我的代码。
select
br.*, br.name,
count(it.id) as nit,
sl.staff1 as st1,
sl.staff2 as st2,
sl.staff3 as st3,
sl.money as money
from mb_branch br
left join mb_item it on it.uid=br.uid
left join mb_sell sl on sl.uid=br.uid
where date(it.dtime)=?
group by br.uid,date(it.dtime)
1条答案
按热度按时间sxissh061#
将
it
表的条件放入WHERE子句中:这将排除
it
没有匹配的任何外连接行,因为如果it.dtime
为NULL,条件当然失败。如果要限制外连接表的行数,请将条件放在
JOIN..ON
中。