【问题标题】:What would be the SQL query for my problem?我的问题的 SQL 查询是什么?
【发布时间】:2019-07-18 21:03:50
【问题描述】:

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

id 问题 id_sub_cateory

此外,table_sub_categories 有以下列:

id sub_category id_category

还有table_categories:

id 类别 id_subject

另外还有一个table_subject:

id 主题 id_questionnaire

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

身份证问卷

现在我想要一个 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。但现在我必须更改查询。我就是不知道怎么办!?

【问题讨论】:

  • 您要创建的表是用于添加数据还是仅用于查看信息?。如果仅用于查看表的组合信息,请使用 JOIN 否则必须创建新表。 (数据库的观点)。
  • 我编辑了我的问题以使其清楚。

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


【解决方案1】:

这是有效的查询:

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

【讨论】:

    猜你喜欢
    • 2010-12-23
    • 2016-10-29
    • 2017-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多