我有两张桌子:
教授
id_prof numep prenumep 1 bla bla 2 bla bla 3 bla bla
考试
id_ex id_prof1 id_prof2 1 1 3 2 2 1 3 3 2
我想用以下方式展示所有考试:
$sqll = "SELECT * FROM exam, professor WHERE id_prof=id_prof1 AND id_prof = id_prof2 " ;
$result = mysqli_query($link,$sqll);
while($rows=mysqli_fetch_array($result,MYSQLI_BOTH)) {
<tr>
<td><?php echo $rows['numep']." ".$rows['prenumep']; ?></td>
<td><?php echo $rows['numep']." ".$rows['prenumep']; ?></td>
</tr>
}
它没有显示任何内容。但如果我删除其中一个id_prof=id_prof1
或另一个,它只显示一位教授。我应该怎么做才能展示它们?我想在最后的日期考试教授Assistent等展示。和prof1和prof2 si为教授和助手。在这里我只说了一部分,因为只有这个不起作用
答案 0 :(得分:0)
SELECT * FROM exam, professor WHERE id_prof=id_prof1 AND id_prof = id_prof2
你正在寻找一些id_prof女巫,在tabla&#34;考试&#34;你有像
这样的东西id_ex id_prof1 id_prof2
1 1 1
2 3 3
等...
将查询更改为:
SELECT * FROM exam, professor WHERE id_prof=id_prof1 OR id_prof = id_prof2
答案 1 :(得分:0)
理想情况下,你应该对left join
到professor
表进行2次以获取数据,如果某些教授数据被删除,它将在结果中显示为null,如
select
e.id_ex,
p1.numep as numep1,
p1.prenumep as prenumep1,
p2.numep as numep2,
p2.prenumep as prenumep2
from exam e
left join professor p1 on p1.id_prof = e.id_prof1
left join professor p2 on p2.id_prof = e.id_prof2