【发布时间】:2014-12-25 21:17:55
【问题描述】:
我有一个查询,它正在检查 5 个评论网站的数据并返回 site_id、review_count 和 review_average。
如果没有评论网站的数据,那么我想返回 0 作为计数和平均值。
这可以在 mysql 查询中执行吗?
mySQL:
SELECT rrss.review_site_id,rrss.review_count,rrss.review_average,rs.name
FROM rooftops_review_sites_snapshots rrss
LEFT JOIN review_sites rs ON rrss.review_site_id = rs.id
WHERE rrss.rooftop_id = 185
AND rrss.import_id = 16
AND rrss.review_site_id IN (31,30,12,10,29)
电流输出:
Array
(
[google] => Array
(
[review_site_id] => 31
[review_count] => 24
[review_average] => 3.80
)
[edmunds] => Array
(
[review_site_id] => 12
[review_count] => 8
[review_average] => 4.50
)
)
期望的输出:
Array
(
[google] => Array
(
[review_site_id] => 31
[review_count] => 24
[review_average] => 3.80
)
[edmunds] => Array
(
[review_site_id] => 12
[review_count] => 8
[review_average] => 4.50
)
[yelp] => Array
(
[review_site_id] => 31
[review_count] => 0
[review_average] => 0
)
[dealerrater] => Array
(
[review_site_id] => 12
[review_count] => 0
[review_average] => 0
)
[cars] => Array
(
[review_site_id] => 12
[review_count] => 0
[review_average] => 0
)
)
【问题讨论】:
-
如果
review_sites表中存在所有站点,则将其切换到谓词并使用LEFT JOIN中的另一个表。
标签: php mysql not-exists ifnull