我试图用SELECT方法从数据库中获取数据,但是当我运行语法时,结果只有一行。我相信结果一定是更多的行。
我也尝试了LEFT OUTER JOIN而不是FULL OUTER JOIN的方法。但是当我这样做的时候我会得到一个语法错误。
有人知道我为什么只坐一排吗?
下面是我的sql语法:

SELECT
    cus.cus_id
,   cus.name_cus
,   cus.address, count(invoice.id) as id2
,   CONCAT('€ ', ROUND(SUM(invoice.total),2)) as total
,   cus.id
FROM cus
LEFT OUTER JOIN invoice
ON cus.cus_id = invoice.cus_id

最佳答案

您使用的聚合函数没有GROUP BY子句:

SELECT
    cus.cus_id
,   cus.name_cus
,   cus.address
,   count(invoice.id) as id2
,   CONCAT('€ ', ROUND(SUM(invoice.total),2)) as total
,   cus.id
FROM cus
LEFT OUTER JOIN invoice ON cus.cus_id = invoice.cus_id
GROUP BY cus.cus_id, cus.name_cus, cus.address, cus.id

尽管您只需要按唯一ID(即cus.id)分组,但您也应该添加未聚合到GROUP BY子句的其他字段,即使它们不创建其他组。

09-16 19:06