php - mysql连接和求和问题

标签 php mysql sql

我在这方面遇到了一些麻烦。

这是我的表格的示例。

Booking

id zone_id name excursion_id
1  2               1
2  1               1
3  2               1

我有数量的表格 预订价格

id_booking id_price quantity
1              1       2
1              2       3
2              1       1
2              2       0
3              1       2
3              2       3

这里是区域表

Zone
id  Name
1    a
2    b
3    c

所以我想要一张这样的 table

Zone_id Quantity
1          1  
2          10
3          0

问题是当我加入表并按 excursion_id 过滤时,我没有获得所有区域。

我想知道每个区域有多少人。

最佳答案

我认为更好的方法是

select z.id, coalesce(sum(bp.quantity),0) as quantity
from Booking b 
right join Zone z on z.id = b.zone_id AND b.excursion_id = 1
left join booking_price bp on bp.id_booking = b.id
group by z.id

演示 http://sqlfiddle.com/#!2/771f5/13

关于php - mysql连接和求和问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22690783/

相关文章:

c# - LINQ - 通过 WHERE 子句查询大约 6000 条唯一记录

javascript - 如何使用 XMLHTTP 将变量从 JavaScript 传递到 PHP 页面

php - 制作关联数组 - array_combine() 期望参数 1 为数组,给定字符串

php - 如何使用getColumnMeta?

jquery - Ignited-Datatables,应该怎么做?

MySQL 显示具有 x 条记录的表

SQL Server 合并 WHEN NOT MATCHED 子句自定义

php - Symfony:如何使 JMS 序列化程序与严格类型一起工作?

带有 json 的 php web 服务

MYSQL 带有 SUM 和子查询的累计总计