首页 > 解决方案 > 表未按预期加入

问题描述

我有两张桌子,一张是测验,另一张是问题。

测验模式是这样的:

{
    "id":  ,
    "name": "",
    "description": ""
}

问题架构如下:

{
    "id": ,
    "name": "",
    "options": "",
    "correct_option": ,
    "quiz": ,
    "points": ,
}

现在,我必须以得到以下值的方式加入这两个表:

{
    "name": "sample_quiz",
    "description": "sample text",
    "questions" :
    "id": ,
    "name": "",
    "options": "",
    "correct_option": ,
    "quiz": ,
    "points":
}

这是我到目前为止所做的查询。但是,它没有产生所需的结果。

select 
    quiz.*, 
    questions.* 
from quiz 
inner join questions on questions.quiz = quiz.id 
where quiz.id = 10

我哪里错了?

注意:Questions 表中的 Quiz 列是 Quiz 表中 ID 的外键。

标签: sqlsqlite

解决方案


您的查询看起来不错。如果您没有得到预期的结果,可能是因为您在连接的两个表中都有同名的列。我建议使用列别名来避免这种情况:

select 
    quiz.id quiz_id,
    quiz.name quiz_name,
    quiz.description quiz_description,
    questions.name question_name,
    questions.options question_options,
    questions.correct_option question_correct_option,
    questions.points question_points
from quiz 
inner join questions on questions.quiz = quiz.id 
where quiz.id = 10

推荐阅读