MySQL LEFT JOIN示例

时间:2014-03-31 19:02:33

标签: php mysql

我正在研究PHP文件和MySQL。

在文件中,我需要从三个表中选择记录。

如果使用两个表进行查询:

$query_Recordset1 = "
  SELECT * FROM tbgastos
  LEFT JOIN tbconceptosgastos
    ON tbgastos.tipoGasto = tbconceptosgastos.idConceptoGasto
  LEFT JOIN tbobras
    ON tbgastos.obra = tbobras.idObra
  ORDER BY fecha DESC
"; 

它工作正常,但如果我尝试使用三个表:

$query_Recordset1 = "
  SELECT * FROM tbgastos
  LEFT JOIN tbconceptosgastos
    ON tbgastos.tipoGasto = tbconceptosgastos.idConceptoGasto
  LEFT JOIN tbobras
    ON tbgastos.obra = tbobras.idObra
  LEFT JOIN tbproveedores
    ON tbgastos.proveedor = tbproveedores.nombreProveedor
  ORDER BY fecha DESC
";

未显示第三个表(tbproveedores)记录。

我做错了什么?

已更新

tbgastos

enter image description here enter image description here

tbproveedores

enter image description here enter image description here

1 个答案:

答案 0 :(得分:3)

在你的tbgastos表中,你有一个int类型的外键(证明者)。 而且你希望它与表tbproveedores相匹配。你不想指向tbproveedores.idProveedor吗?

$query_Recordset1 = "
  SELECT * FROM tbgastos
  LEFT JOIN tbconceptosgastos
   ON tbgastos.tipoGasto = tbconceptosgastos.idConceptoGasto
 LEFT JOIN tbobras
   ON tbgastos.obra = tbobras.idObra
 LEFT JOIN tbproveedores
  ON tbgastos.proveedor = tbproveedores.idProveedor
 ORDER BY fecha DESC
";