免责声明:如果这是一个简单的问题或措辞严重的问题,请注意。我是一个菜鸟,我不知道如何说出这个问题,所以我不知道如何谷歌。
我有两张桌子。 Math.question和Math.choice。
Math.question包含一个questiontext列,以及correctanswerid,wronganswerid1 ......等等。
questiontext correctanswerid wronganswerID1 wronganswerid2
(question text 101 102 103
goes here)
Math.choice包含选择的id和选择文本。
id choicetext
101 (text goes here)
102 (text goes here)
...
我想从math.question和choicetext中选择questiontext。所以它会显示如下:
questiontext correctanswerText wronganswer1text wronganswer2text
(question text) (choice text) (choice text) (choice text)
我试过这个:
select * from math.choice
where id in (
select CorrectAnswer_Choice_ID, Foil1_Choice_ID, Foil2_Choice_ID, Foil3_Choice_ID
from math.question where id=301
);
我得到的子查询有太多列错误。我不确定从哪里开始。
答案 0 :(得分:0)
您需要多个join
。像这样:
select c.*, q1. choicetext, q2.choicetext, q3.choicetext
from math.choice c left join
math.question q1
on q1.id = c.CorrectAnswer_Choice_ID left join
math.question q2
on q2.id = c.Foil1_Choice_ID left join
math.question q3
on q3.id = c.Foil3_Choice_ID ;