使用php和mysql将两个字段合并在一起
请看下面的代码:使用php和mysql将两个字段合并在一起,php,mysql,Php,Mysql,请看下面的代码: $query = " SELECT * FROM Question q INNER JOIN StudentAnswer sa ON q.QuestionId = sa.QuestionId JOIN Answer a ON sa.QuestionId = a.QuestionId WHERE ('".mysql_real_escape_string($ses
$query = "
SELECT * FROM Question q
INNER JOIN StudentAnswer sa ON q.QuestionId = sa.QuestionId
JOIN Answer a ON sa.QuestionId = a.QuestionId
WHERE
('".mysql_real_escape_string($sessionid)."' = '' OR q.SessionId = '".mysql_real_escape_string($sessionid)."')
AND
('".mysql_real_escape_string($questionno)."' = '' OR q.QuestionNo = '".mysql_real_escape_string($questionno)."')
AND
('".mysql_real_escape_string($studentid)."' = '' OR sa.StudentId = '".mysql_real_escape_string($studentid)."')
AND(CorrectAnswer = '1')
ORDER BY $orderfield ASC";
while ($row = mysql_fetch_array($result)) {
echo "
<tr>
<td>{$row['SessionId']}</td>
<td>{$row['QuestionNo']}</td>
<td>{$row['QuestionContent']}</td>
<td>{$row['AnswerContent']}</td>
<td>{$row['StudentAnswer']}</td>
<td>{$row['Weight%']}</td>
<td></td>
<td>{$row['StudentId']}</td>
</tr>";
}
?>
每一行都是我的数据库表中的一个字段。我感兴趣的有两行,分别是:
<td>{$row['AnswerContent']}</td>
<td>{$row['StudentAnswer']}</td>
Answercontent行是我在查询的WHERE子句中提到的正确答案的单词answer。但事实上,在数据库表中,AnswerContent字段包含的行中,每个answerid都有单词答案
学生回答是学生选择的答案的id studentanswerid。我想要的是,对于学生回答行,我不希望它显示id号,例如10、5、2,而是我希望通过单词显示学生答案,例如橙色、蓝色、紫色。所以我想知道的是,我如何将答案内容和学生答案合并在一起,这样无论学生答案是什么,它都会以单词形式从“学生答案”字段中显示出来,而不是以id形式
谢谢不要从表中选择*。只获取你想要的字段。选择所有列会降低可维护性并增加数据库服务器上的负载
如果您不喜欢,您可以在while循环中执行第二个查询,从中获取与StudentAnswer匹配的答案的文本内容。然而,这并不像你对上一个问题的回答那样有效
如果没有任何模式的精确定义,编写针对您的问题的实际查询就有点困难。可能重复Dub?你已经问过了,并且得到了一个有效的答案。不要重复提问。你没有正确回答,因为你不明白我的意思。我回复问题更好地理解问题不要回复问题-而是编辑原始问题,使其更清晰。表格已连接。答案内容在答题表中,学生答案在学生答案表中。我明白了,我误解了这个问题。