我正在尝试从3个不同的表格中创建一个选择。 我想显示学生的姓名,他的班级和注册日期。 我有3个表格“ aluno”(学生),“ turma”(课程)和“ data ...”(日期)。 学生的名字在第一个名为“ aluno”的表上。 该stundet的类在名为“ turma”的表上。 该类的寄存器在名为“ matricula”的表上。 我的目的是要显示名字,类名(designacao)和日期(数据)。 我执行此sql命令的函数正在执行联接,但是我不确定是否可以。 我认为选择是错误的。
function DBRead15()
$sql="SELECT aluno.nome as nome, matricula.*, turma.*
FROM matricula
LEFT JOIN aluno ON aluno.n_processo = matricula.n_processo";
$result=DBExecute($sql);
while($res=mysqli_fetch_assoc($result))
{
$data[]=$res;
}
return $data;
答案 0 :(得分:2)
您开始部分地执行查询,但是可以继续进行以下操作:
SELECT aluno.nome as nome, turma.designacao, matricula.data
FROM aluno
LEFT JOIN turma ON aluno.n_processo = matricula.n_processo
LEFT JOIN matricula ON turma.idturma = matricula.turma
此查询将aluno和turma之间的连接分配为 aluno_id (一对多关系),将turma和矩阵之间的连接分配为 turma_id (一对一关系)许多关系)。 此查询可能对您而言并不完美,您将必须将aluno_id更改为将学生与他们的班级联系起来的任何列。
此查询是如何在SQL中联接表的示例。
答案 1 :(得分:2)
查看表格
SELECT aluno.nome as nome, matricula.*, turma.*
FROM matricula
LEFT JOIN aluno ON aluno.n_processo = matricula.n_processo
LEFT JOIN turma ON matricula.turma = turma.idturma