我遇到了一些麻烦。
这是我的表格的一个例子。
Booking
id zone_id name excursion_id
1 2 1
2 1 1
3 2 1
我有数量的表格 booking_price
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
所以我希望有一个像这样的表
Zone_id Quantity
1 1
2 10
3 0
问题是当我连接表并通过excursion_id过滤时我没有获得所有区域。
我想知道每个区域有多少人。
答案 0 :(得分:1)
我认为更好的方法是
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
答案 1 :(得分:0)
您可以使用以下查询:
SELECT zone.id as zone_id,
sum(quantity) as Quantity
FROM zone
LEFT JOIN Booking on Booking.zone_id = zone.id
LEFT JOIN Excursion on Excursion.id_booking = Booking.id
GROUP BY zone.id