即使表B上没有记录,也可以使用左连接获取所有记录

时间:2018-01-04 20:44:46

标签: mysql

我对这个SQL查询有一些问题,我有两个表:

cliente:

id  |     dni     | Nombre
1   | 10296450823 | John Doe
2   | 10296780893 | Mark Doe

deuda

id | monto_deuda | id_cliente
1  | 125.00      | 1
1  | 125.00      | 1

但是当我运行此查询时:

SELECT dni AS Identidad, SUM(de.monto_deuda) as deuda FROM cliente LEFT JOIN deudas de ON de.id_cliente = cliente.id

我收到了这个结果:

MySQL Result

您可以看到,我只获得身份证号为1的客户,但我没有收到其他没有任何登记表“deuda”的客户。

我希望得到所有客户,即使他们没有“deuda”表上的任何记录

我怎么能这样做? 感谢

1 个答案:

答案 0 :(得分:0)

您需要对数据进行分组,以便为​​每个组获得sum(),而不是完整的结果

SELECT dni AS Identidad, 
       SUM(de.monto_deuda) as deuda 
FROM cliente 
LEFT JOIN deudas de ON de.id_cliente = cliente.id
GROUP BY dni