如果没有选中,mysql显示选项

时间:2015-07-09 15:23:20

标签: php mysql sql database

我有一个查询将几个表连接在一起并带回一组结果。但是我发现需要调整它以便以不同的方式撤回结果。

基本上人们有一个调查数据存储在数据库中。

根据数据,我需要制作如下图所示的报告:(这只是一些可能的示范问题)

enter image description here

所以我遇到的问题是图片中的第一个问题,每个人都选择了“是”'这意味着我只撤回了答案。相反,我需要显示可能的答案" no"所以我可以在右边放0(对于选择此选项的人数)。

我的查询如下:

            SELECT
                `surveyEntries`.`ID` AS EntryID,
                `surveyEntries`.`created` AS EntryDate,
                `hw_services`.`name` AS Provider,
                `surveyQuestions`.`ID` AS QuestionID,
                `surveyQuestions`.`label` AS Question,
                `survey_meta`.`answer` AS Answer,
                 count(*) as Total,
                `surveyQuestions`.`parentID` AS ParentQuestion
            FROM `survey`
            JOIN `surveyQuestions`
                ON `survey`.`ID` = `surveyQuestions`.`surveyID`


            JOIN `surveyEntries`
                ON `survey`.`ID` = `surveyEntries`.`surveyID`
            JOIN `survey_meta`
                 ON (`surveyEntries`.`ID` = `survey_meta`.`entryID` AND `surveyQuestions`.`ID` = `survey_meta`.`questionID`)
            JOIN `hw_services`
                ON `surveyEntries`.`hw_serviceID` = `hw_services`.`ID`
            WHERE `hw_services`.`healthwatchID` = '1'
            AND `survey`.`ID` = '1'
            AND `surveyQuestions`.`type` IN ('radio', 'dropdown')
            AND `hw_services`.`ID` = 1697
            GROUP BY `surveyQuestions`.`ID`, `survey_meta`.`answer`

从这个查询得到的结果如下所示:(仅显示4行用于演示目的)

enter image description here

好的,你可以看到我的问题。问题"你住在伯明翰市吗? 25/25人选择了是。所以我没有选择' No'。

好的,所有包含所有选项的表名为questionChoices,下面的图片如下所示:

enter image description here

我已经尝试但是没有运气得到我想要的结果。我真的不想通过PHP来做这件事,因为它会使代码变得非常混乱。

有谁知道我怎么能做到这一点?为了帮助你们,我将提供一个图像列表,显示与此相关的每个数据库表中的一个示例。

调查:

enter image description here

surveyEntries:

enter image description here

surveyQuestions:

enter image description here

survey_meta:(加入问题和答案)

enter image description here

我在此问题的前面提供了 questionChoices 的示例

0 个答案:

没有答案