我正在尝试使用方法SELECT
从我的数据库中LEFT OUTER JOIN
数据,但是当我运行语法时,结果只有一行。我确信结果必须是更多行。
我还尝试了FULL OUTER JOIN
方法,而不是LEFT 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
答案 0 :(得分:2)
您正在使用没有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
子句的字段,即使它们没有创建其他组。 / p>