MySQL - 返回视图数,如果没有行则返回0

时间:2014-12-27 22:20:17

标签: mysql

我收到了当前的查询:

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

1 个答案:

答案 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