我试图用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
子句的其他字段,即使它们不创建其他组。