我的SQL Server数据库中有两个表。第一个是问题,第二个是Question_options。每个问题4个选项两个表中都有一个qid列。 我的数据库结构: 问题表:
qid q_text discription
1 what is ip some data
2 what is ipv same data
和question_options表如下:
oid qid options correct_answer
1 1 option1 0
2 1 option2 0
3 1 option3 1
4 1 option4 0
5 2 example1 0
6 2 example4 1
7 2 example3 0
8 2 example2 0
如何获取问题和question_options表数据以及如何显示 像这样获取数据:
<div id="qid">qid</div>
<div id ="q_text">q_text</div>
<div id="options1">option1</div>
<div id="options2">option2</div>
<div id="options3>option3</div>
<div id="options4>option4</div>
<div id="correct_answer">correct_answer</div>
<div id="discription">discription</div>
如何使用一个sql语句从table1中选择qid,q_text和4个选项(其中table2来自qid)?
答案 0 :(得分:1)
您可以使用通过 QID 进行的连接来获取数据,并使用 SUBSTRING 减去字符串,如下所示: 如果您想获取所有正确答案,可以使用:
select
q.qid,
q.q_text,
qo.options,
if(qo.correct_answer = 1,substring(qo.options,length(qo.options)),null) as correct_answer,
q.description
from questions q,question_options qo
where q.qid = qo.qid
如果您只想获取正确的数据,则可以使用:
select
q.qid,
q.q_text,
qo.options,
if(qo.correct_answer = 1,substring(qo.options,length(qo.options)),null) as correct_answer,
q.description
from questions q,question_options qo
where q.qid = qo.qid
and if(qo.correct_answer = 1,1,null) is not null
如果您想获取单个问题的数据,您可以再加上一个条件:
and q.qid = 1
答案 1 :(得分:0)
select
q.qid,
q.q_text,
qo.options,
IF(qo.correct_answer = 1, substring(qo.options, 7, 1), 0)
q.discription
from questions q
join question_options qo on q.qid=qo.qid
答案 2 :(得分:0)
查询应如下所示
$query = SELECT * FROM questuons LEFT JOIN question_options ON questuons.qid=question_options.qid where question_options.correct_answer= '1'";
,并且php代码应如下所示
$result = $DBconn->query($query );
while($row=$result->fetch_array()) {
echo $row['q_text'];
}
尝试以上方法。希望它能工作。