Mysql 我的场景中需要正确的SQL语句
我的数据库中有我想要的结果时出现问题。我想从另一个表中提取总行数,在这个表中,它的条件将属于另一个表。为了清楚起见,下面是示例说明Mysql 我的场景中需要正确的SQL语句,mysql,.net,vb.net,Mysql,.net,Vb.net,我的数据库中有我想要的结果时出现问题。我想从另一个表中提取总行数,在这个表中,它的条件将属于另一个表。为了清楚起见,下面是示例说明 >tblBus > >Bus ID ~ Day~ Type > >1000 | Monday | Public >2000|Monday | Private >3000|Tuesday| Public >4000|Monday | Public >tblReservation > >B
>tblBus
>
>Bus ID ~ Day~ Type
>
>1000 | Monday | Public
>2000|Monday | Private
>3000|Tuesday| Public
>4000|Monday | Public
>tblReservation
>
>Bus ID | Date
>1000 | 2013/3/4
>2000 | 2013/3/4
>3000 | 2013/3/6
假设预订日为周一,即2013年3月4日。。我想显示星期一可用的所有公交车,新的一行显示该公交车的预订总数
e、 g
可生成(其中日期为2013年3月4日,类型为Public,日期为星期一)
您可以使用以下命令将表连接到
总线id
上,然后获取保留计数:
select b.`bus id`,
b.day,
b.type,
count(r.date) TotalNumberReservation
from tblBus b
inner join tblReservation r
on b.`bus id` = r.`bus id`
where r.date = '2013-03-04'
and b.day = 'Monday'
group by b.`bus id`, b.day, b.type
看
如果即使没有预订也要返回与正确日期匹配的所有行,则需要使用左联接
:
select b.`bus id`,
b.day,
b.type,
count(r.date) TotalNumberReservation
from tblBus b
left join tblReservation r
on b.`bus id` = r.`bus id`
AND r.date = '2013-03-04'
where b.day = 'Monday'
group by b.`bus id`, b.day, b.type
请参见以下是生成所有公交车、天数和日期计数的基本查询,您可以根据需要进行筛选:
Select a.bus_id, day, type, count(*) as TotalNumberReservation
from tblBus a
join tblReservation b
on a.busId=b.busId
group by a.bus_id,day,type
加入
,分组依据
&计数
。编辑:它有一个问题,它仍然应该显示所有具有相同日期的总线。e、 g.所有公共汽车进站monday@DandeloDarkyCardona查看我的编辑,您需要使用左连接
instead,我已经在我的系统上试用过了,它工作得非常完美!谢谢直到下一次^你真是个职业选手@DandeloDarkyCardona不客气!总是乐于帮助其他用户。
Select a.bus_id, day, type, count(*) as TotalNumberReservation
from tblBus a
join tblReservation b
on a.busId=b.busId
group by a.bus_id,day,type