Mysql SQL-如何从其他表中选择信息

Mysql SQL-如何从其他表中选择信息,mysql,sql,Mysql,Sql,我是sql新手,正在尝试构建某种测试。我做了两张表,图上显示了模式。 也许我做错了,但不知道如何纠正。 我想显示一个问题,所有三个可能的答案和好的答案,所以我得到的答案是文本而不是数字。 我试过了 但是我在需要与ID关联的文本的地方获得答案ID 你能告诉我我做错了什么吗?对于要显示的每一列,你需要分别加入答案表: SELECT q.questiontext, a1.answertext AS answer1, a2.answertext AS answer2, a3.answertext as

我是sql新手,正在尝试构建某种测试。我做了两张表,图上显示了模式。

也许我做错了,但不知道如何纠正。 我想显示一个问题,所有三个可能的答案和好的答案,所以我得到的答案是文本而不是数字。 我试过了

但是我在需要与ID关联的文本的地方获得答案ID


你能告诉我我做错了什么吗?

对于要显示的每一列,你需要分别加入
答案表:

SELECT q.questiontext, a1.answertext AS answer1, a2.answertext AS answer2, a3.answertext as answer3, a4.answertext as good_answer
FROM questions AS q
JOIN answers AS a1 ON a1.id = q.answer1_id
JOIN answers AS a2 ON a2.id = q.answer2_id
JOIN answers AS a3 ON a3.id = q.answer3_id
JOIN answers AS a4 ON a4.id = q.goodanswer

制作问答表

问题表:id,文本

答案表:id、问题id、状态、文本

SELECT a.* FROM questions as q, answers as a
WHERE a.question_id=q.id

添加示例数据和预期结果,这样您的问题就可以有多个答案和一个好答案?是的,应该有3个问题可供选择,只有一个是正确的。我以前试过,但语法不好。你说得很清楚。我设计数据库的方式是一种很好的方式,还是你会以不同的方式设计?感谢you@PhiCato我不会为每个答案ID设置单独的列,而是在答案表中放置一个外键,用于引用问题ID。答案表可以有一个
正确的
列,用于指示它是否是正确的答案。这是另一个答案中建议的解决方案。您需要添加一些内容来指示哪个答案是正确的。
SELECT a.* FROM questions as q, answers as a
WHERE a.question_id=q.id