如何一次从多个表中获取数据?

Bab*_*ker 2 php mysql

我在数据库中有两个表.表questions,有两列,IDquestion.表二answers有两列question_IDanswer.在表格中,answers有一个以上的答案与一个问题有关.所以有重复的question_IDs.如何从表格中显示所有问题,questions并在问题的answers正确表格中显示与其相关的所有答案?喜欢:

太阳有多远?

太阳距离1800万英里.
太阳距离9300万英里.
距离太阳有2英里.

太阳有多大?

大.
小.
介质.

等等...

对不起,如果问题看起来有点模糊,但它是解释它的最佳方式. 提前致谢.

emu*_*ano 6

您将执行连接两个表的选择查询,按问题ID排序.

SELECT q.ID as question_id, q.question, a.ID as answer_id, a.answer
FROM questions q
LEFT JOIN answers a ON a.question_ID = q.ID
ORDER BY q.ID, a.ID
Run Code Online (Sandbox Code Playgroud)

这将为您提供如下结果集:

question_id   question                 answer_id   answer
1             What color is the sky?   100         Blue
1             What color is the sky?   101         Red
2             How old is dirt          102         Very Old
2             How old is dirt          103         Kinda Old
Run Code Online (Sandbox Code Playgroud)

等等

循环浏览此结果集时,您需要跟踪最后一个问题,以便在转到第三个结果时,问题2,您知道显示下一个问题.

例如

$PreviousQid = null;
foreach ($QueryResult as $QueryRow)
{
   if ($PreviousQid === null || $PreviousQid != $QueryRow['question_id'])
   {
       echo "<b>" . $QueryRow['question'] . "</b><br/>\n";
   }

   echo $QueryRow['answer'] . "</br>\n";

   $PreviousQid = $QueryRow['question_id'];
}
Run Code Online (Sandbox Code Playgroud)