我的问题将使用什么SQL查询?

时间:2019-07-18 21:03:50

标签: sql android-room android-architecture-components

我需要有关SQL查询的应用程序中的房间的帮助。有一个表的问题。该表有3列:

id问题id_sub_cateory

此外,还有带有以下列的table_sub_categories:

id子类别id_category

和table_categories:

id类别id_subject

另外还有一个table_subject:

id主题id_questionnaire

最后但并非最不重要的table_questionnaire:

id问卷

现在,我想通过SQL查询来获取以下信息:

table_questionnaire.id table_questionnaire.questionnaire questionCount subjectCount

因此,基本上是一个列表,其中列出了所有包含问题和主题数量的问卷。对此的SQL查询是什么?

编辑:到目前为止,我已经使用了此查询:

SELECT table_questionnaire.id AS 'id', table_questionnaire.questionnaire_name AS 'name', " +
            "COUNT(table_question.id_questionnaire) AS 'questionCount', COUNT(DISTINCT table_question.subject) AS 'subjectCount' " +
            "FROM table_questionnaire " +
            "LEFT JOIN table_question ON table_questionnaire.id = table_question.id_questionnaire GROUP BY table_questionnaire.id"

但这是一个旧版本,因为我用问卷,主题,类别和子类别的ID保存了每个问题。我认识到此信息是多余的。现在,我仅保存sub_category的ID。但是现在我必须更改查询。我就是不知道!!

1 个答案:

答案 0 :(得分:0)

这是有效的查询:

SELECT
                table_categories.id,
                table_categories.id_subject,
                table_categories.category,
                table_sub_categories.id AS 'id_sub_category',
                table_sub_categories.id_category,
                table_sub_categories.subCategory,
                COUNT(id_category) AS 'questionsCount'
            FROM table_question
                LEFT JOIN table_sub_categories ON table_question.id_sub_category = table_sub_categories.id
                LEFT JOIN  table_categories ON table_categories.id = id_category 
            WHERE table_categories.id_subject = :subjectID 
            GROUP BY table_categories.id