sql - 表未按预期加入
问题描述
我有两张桌子,一张是测验,另一张是问题。
测验模式是这样的:
{
"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 的外键。
解决方案
您的查询看起来不错。如果您没有得到预期的结果,可能是因为您在连接的两个表中都有同名的列。我建议使用列别名来避免这种情况:
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
推荐阅读
- android - 为什么 Firebase 数据库 REST API 返回无缓存标头
- html - 如何检查条件
- android - 以图形方式显示附近扫描的蓝牙设备,如下所示
- reactjs - 为什么在 HTML 中直接使用 React(而不是在反应环境中)是一个坏主意?
- html - 给具有对角线边缘的元素一个边框?
- c# - 找到最接近前5000米的记录
- db2 - 返回单个 CASE DB2 上的多个列
- enums - 为什么我们使用 Option 枚举?
- c++ - 如何在 Qt c++ 中使用 Secure WebSocket 连接服务器
- context-free-grammar - 为什么这个 DK 测试是错误的?