我收到了当前的查询:
SELECT views FROM restaurant_views
WHERE (restaurant_id=:rest_id)
AND (date >= DATE_SUB(:date, INTERVAL 12 DAY))
返回过去12天的观看次数 但有时当一家餐馆没有意见时,让我们说1天,它会跳过那一行,只返回11行而不是12行。
我的问题是:
如果餐厅没有意见,如何在该行中返回0? (restaurant_views表中没有行)
现在它返回了这个:(因为行是空的,有些数字丢失了)
1. 70
2. 40
5. 50
6. 40
7. 40
9. 20
10. 40
11. 40
12. 40
我想要的是这个:
1. 70
2. 40
第3。 0
4. 0
5. 50
6. 40
7. 40
的 8。 0
9. 20
10. 40
11. 40
12. 50
答案 0 :(得分:0)
与主餐厅餐厅的左外连接,如果有的话。
SELECT r.id, IFNULL(rv.viewes, 0)
FROM restaurant r
LEFT OUTER JOIN restaurant_views rv
ON r.id = rv.id
WHERE
..//other conditions you need to add