You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL新手求助:如何查询关联表获取答案文本实现问答展示

解决方法:多次关联answers表获取所有答案文本

嗨,我来帮你搞定这个问题!你现在的SQL只关联了一次answers表,所以只能拿到正确答案的文本,另外三个选项的answer1_id、answer2_id、answer3_id还都是ID值对吧?要拿到这三个选项对应的文本,你需要多次关联同一个answers表,给每个关联起不同的别名就行啦。

具体SQL语句

SELECT
  q.questiontext,
  a1.answertext AS answer1_text,  -- 第一个选项的文本
  a2.answertext AS answer2_text,  -- 第二个选项的文本
  a3.answertext AS answer3_text,  -- 第三个选项的文本
  a_good.answertext AS correct_answer_text  -- 正确答案的文本
FROM questions q
-- 关联第一个选项的答案ID到answers表
JOIN answers a1 ON q.answer1_id = a1.id
-- 关联第二个选项的答案ID到answers表
JOIN answers a2 ON q.answer2_id = a2.id
-- 关联第三个选项的答案ID到answers表
JOIN answers a3 ON q.answer3_id = a3.id
-- 关联正确答案的ID到answers表
JOIN answers a_good ON q.goodanswer = a_good.id;

为什么这么做?

你的questions表里的answer1_id、answer2_id、answer3_id、goodanswer都是指向answers表的id字段,每个ID都需要单独和answers表关联一次才能拿到对应的文本。用不同的别名(a1、a2、a3、a_good)可以区分开这几次关联,避免字段冲突。

如果你的数据库允许,也可以用LEFT JOIN代替JOIN,这样即使某个选项的ID为空(比如题目没填全三个选项),这条记录也能被查出来,不会被过滤掉。

内容的提问来源于stack exchange,提问作者PhiCato

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:42:25