2012-03-20 142 views
0

我GOOGLE了我的問題,但沒有得到答案。 我想列出下面的SQL的所有結果,包括NULL(當COUNT(review.id)也返回0),而是我只是得到了只包含評論的地方文章的結果。MYSQL COUNT返回NULL?

$sql = "SELECT tbl_place.id, tbl_place.region_id, tbl_place.subregion_id, tbl_place.title, tbl_place.metalink, tbl_place.img_thumbnail, tbl_place.summary, tbl_place.category1_id, tbl_place.category2_id, tbl_place.category3_id, COUNT(review.id) AS total_review FROM tbl_place 
     JOIN review ON tbl_place.id = review.place_id 
     WHERE 
     tbl_place.category1_id = '32' AND 
     tbl_place.status = '1'   AND 
     review.rating != '0.00'   
     GROUP BY tbl_place.id 
     ORDER BY total_review $by 
     LIMIT $limit OFFSET $offset"; 
+1

可能重複[Mysql:Count記錄(包括零)每月](http://stackoverflow.com/questions/3486998/mysql-count-records-including-zero-per-month)。有很多,如果你看看:http://stackoverflow.com/search?q=[mysql]+count+zero – 2012-03-20 04:12:39

+0

thx OMG小馬,我看了一下,有一個答案! – 2012-03-20 04:37:40

回答

0

請使用左連接作爲審查表而不是連接。連接默認情況下是內部連接,所以它將只接受匹配的記錄。

+0

我找到了答案! – 2012-03-20 04:33:02

+0

thx btw Vetrivel mp! – 2012-03-20 04:33:24

0

的sql應該是:

$sql = "SELECT tbl_place.id, 
tbl_place.region_id, 
tbl_place.subregion_id, 
tbl_place.title, 
tbl_place.metalink, 
tbl_place.img_thumbnail, 
tbl_place.summary, 
tbl_place.category1_id, 
tbl_place.category2_id, 
tbl_place.category3_id, 
(SELECT COUNT(*) FROM review WHERE review.rating != '0.00' AND tbl_place.id = review.place_id) AS total_review 
FROM tbl_place WHERE 
tbl_place.category1_id = '32' AND 
tbl_place.status = '1' 
GROUP BY tbl_place.id 
ORDER BY total_review $by"; 

它的工作! thx傢伙!