在 SQL 中使用时,我有一个内部连接,但是当我尝试将它集成到我的 PHP 中的一个函数中时,它给了我一个语法错误“意外'”(T_ENCAPSED_AND_WHITESPACE),需要标识符(T_STRING)或变量(T_VARIABLE)或号码(T_NUM_STRING)”。代码如下:
echo "<table border=='1'>
<tr>
<th>Name</th>
<th>Exam Date</th>
<th>Level</th>
<th>Mark</th>
<th>Style</th>
</tr>";
while($row = mysql_fetch_array($exam_recordation))
{
echo "<tr>";
$name_query = mysql_query("SELECT DISTINCT student.name
FROM student
INNER JOIN exam ON student.email = exam.Student_email
WHERE student.email <> $row['Student_email']");
while($row = mysql_fetch_array($name_query))
{
echo "<td>" . $row['name'] . "</td>";
}
echo "<td>" . $row['examDate'] . "</td>";
echo "<td>" . $row['level'] . "</td>";
echo "<td>" . $row['mark'] . "</td>";
echo "<td>" . $row['style'] . "</td>";
echo "</tr>";
}
echo "</table>";
我有内部连接的原因是因为它需要来自 $exam_recordation 之外的 Student_email 用于它通过的每条记录。$exam 记录保存考试表中满足设定条件的所有记录。我从自己的研究中看到,嵌套查询并不是最好的做法,我不认为我在嵌套查询,但我正在嵌套 while 循环,这在我看来是可疑的危险/不好的做法。这是我知道如何执行这种功能/操作的唯一方法。
我需要的帮助是弄清楚如何将内部连接加入该功能。对于第一个 while 循环所经过的每条记录的每封电子邮件,内部连接将名称从学生表中取出并回显。