2011-01-13 5 views
1

応答ヘッダーテーブルは、特定の調査に対する応答を表示するためにカウントされる結合テーブルです。行がないので応答がない場合は、カウントを0にします。しかし、結合パラメータ(survey_id)がテーブルにないため、行をスキップしています。結合されたテーブルの行数をカウントしますが、行がない場合は0を表示します - mysql

SELECT DATE_FORMAT(launched_date,'<nobr>%e-%b-%Y %H:%i:%s</nobr>'), 
survey.NAME, 
survey.iris_type, 
survey.launched_by, 
COUNT(response_header_2010.survey_id) AS response_count, 
survey.survey_id, 
survey.NAME 

FROM survey, response_header_2010 

WHERE survey.STATUS='Live' 
AND survey.iris_type!='Recipient List' 
AND response_header_2010.survey_id = survey.survey_id 
AND client_id = '98' 

GROUP BY survey.survey_id, survey.NAME 

ORDER BY response_count 

答えて

2

あなたは現在持っているINNER JOINの代わりにLEFT JOINを使用します。

SELECT DATE_FORMAT(launched_date,'<nobr>%e-%b-%Y %H:%i:%s</nobr>'), 
survey.NAME, 
survey.iris_type, 
survey.launched_by, 
COUNT(response_header_2010.survey_id) AS response_count, 
survey.survey_id, 
survey.NAME 

FROM survey 
LEFT JOIN response_header_2010 
    ON survey.survey_id = response_header_2010.survey_id 
WHERE survey.STATUS='Live' 
AND survey.iris_type!='Recipient List' 
AND client_id = '98' 

GROUP BY survey.survey_id, survey.NAME 

ORDER BY response_count 
+0

完璧!ありがとうジョー。 – CrocHunter

関連する問題