Php 如何使用JOIN从两个表中获取数据
我的查询 $i=1Php 如何使用JOIN从两个表中获取数据,php,mysql,join,Php,Mysql,Join,我的查询 $i=1 question **question_id question option1 option2 option3 option4** 15 AAA a1 a2 a3 a4 38 BBB b1 b2 b3 b4 39 CCC c1 c2 c3 c4 44
question
**question_id question option1 option2 option3 option4**
15 AAA a1 a2 a3 a4
38 BBB b1 b2 b3 b4
39 CCC c1 c2 c3 c4
44 DDD d1 d2 d3 d4
45 EEE e1 e2 e3 e4
exam_question_list
**id** **exam_paper_id** **category_id** **job_id** **q1 q2 q3 q4 q5**
1 1 3 1 15 38 39 44 45
$sql=“从考试问题列表中选择*
左连接问题qu1上的问题qu1。问题id=eq.q1
左连接问题qu2上的问题qu2。问题_id=eq.q2
左连接问题qu3上的问题qu3。问题id=eq.q3
左连接问题qu4上的问题qu4。问题_id=eq.q4
左连接问题qu5上的问题qu5。问题_id=eq.q5”;
$result=mysqli_查询($dbcon,$sql);?>
这只给出了最后一个问题(q5)。我想分别显示q1、q2、q3、q4、q5问题及其选项。如何做到这一点?使用别名来区分问题表的每个实例。如果愿意,您可以将可选的
作为
关键字
$sql="SELECT * FROM exam_question_list eq
LEFT JOIN question qu1 ON qu1.question_id =eq.q1
LEFT JOIN question qu2 ON qu2.question_id =eq.q2
LEFT JOIN question qu3 ON qu3.question_id =eq.q3
LEFT JOIN question qu4 ON qu4.question_id =eq.q4
LEFT JOIN question qu5 ON qu5.question_id =eq.q5";
$result=mysqli_query($dbcon,$sql); ?>
<table>
<?php
while($row = mysqli_fetch_array($result)){
?>
<tr>
<tr data-label="Question"><td><input name="q<?php echo $i++; ?>" value="<?php echo $row['question'];?>" readonly /></td></tr>
<tr data-label="Question"><td><input type="radio" name="a" value="1"/><?php echo $row['option1']; ?></td></tr>
<tr data-label="Question"><td><input type="radio" name="a" value="2"/><?php echo $row['option2']; ?></td></tr>
<tr data-label="Question"><td><input type="radio" name="a" value="3"/><?php echo $row['option3']; ?></td></tr>
<tr data-label="Question"><td><input type="radio" name="a" value="4"/><?php echo $row['option4']; ?></td></tr>
</tr>
<?php
}
?>
</table>
来源
在获取选项
SELECT * FROM exam_question_list AS eq
LEFT JOIN question AS qu1 ON qu1.question_id =eq.q1
LEFT JOIN question AS qu2 ON qu2.question_id =eq.q2
LEFT JOIN question AS qu3 ON qu3.question_id =eq.q3
LEFT JOIN question AS qu4 ON qu4.question_id =eq.q4
LEFT JOIN question AS qu5 ON qu5.question_id =eq.q5
看看[]第一季度到第五季度是从哪里来的?在第一个表中是否有列被命名为?外键(q1)引用问题(问题id),外键(q2)引用问题(问题id),外键(q3)引用问题(问题id),外键(q4)引用问题(问题id),外键(q5)引用问题(问题id),现在更新我的答案检查…可以举个例子,我不明白。如何使用'As'关键字,可以给出一些示例查询链接就可以了。但我仍然无法将所有的问题、选项都放到页面中,while循环中的错误是什么?我如何预览q1-q5所有5个带选项的问题。所以您也需要从问题表中获取所有问题?不是全部,问题,选项1,选项2,选项3,选项4从“问题”表尝试此代码
从问题中选择*作为q左键加入考试问题列表作为eq.q1=q.QUEST\U id和eq.q2=q.QUEST\U id和eq.q3=q.QUEST\U id和eq.q4=q.QUEST\U id和eq.q5=q.QUEST\U id
SELECT *,question.option1,question.option2,question.option3,question.option4 FROM exam_question_list AS eq
LEFT JOIN question AS qu1 ON qu1.question_id =eq.q1
LEFT JOIN question AS qu2 ON qu2.question_id =eq.q2
LEFT JOIN question AS qu3 ON qu3.question_id =eq.q3
LEFT JOIN question AS qu4 ON qu4.question_id =eq.q4
LEFT JOIN question AS qu5 ON qu5.question_id =eq.q5