从3个表中创建一个选择

时间:2019-06-27 16:26:45

标签: php html mysql

我正在尝试从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;

Table with the data

Table Aluno

Table turma

Table matricula

2 个答案:

答案 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