Mysql SQL 2在一个查询中使用count左连接

Mysql SQL 2在一个查询中使用count左连接,mysql,sql,sql-server,select,join,Mysql,Sql,Sql Server,Select,Join,我有一个SQL查询: SELECT table1.column1, table2.column2, table1.column2 FROM table1 LEFT JOIN table2 (ON table1.column1=table2.column2) 我要做的是向表中添加另一个左连接,但也要计算该左连接数据,如: SELECT table1.column1, table2.column2, table1.column2, COUNT(table3.column1) FROM tab

我有一个SQL查询:

SELECT table1.column1, table2.column2, table1.column2 
FROM table1 LEFT JOIN table2 (ON table1.column1=table2.column2) 
我要做的是向表中添加另一个左连接,但也要计算该左连接数据,如:

SELECT table1.column1, table2.column2, table1.column2, COUNT(table3.column1) 
FROM table1 LEFT JOIN table2 ON table1.column1=table2.column2 
LEFT JOIN table3 ON table1.column1=table3.column1

代码似乎不起作用,有什么问题吗?

count
是一个聚合函数-如果没有
group by
子句,您不能将其与单行函数混合使用。解决此问题的一种方法是在子查询上联接,而不是直接在
table3
上联接,并在那里应用
groupby

SELECT    table1.column1, table2.column2, table1.column2, cnt
FROM      table1
LEFT JOIN table2 ON table1.column1 = table2.column2 
LEFT JOIN (SELECT   column1, COUNT(*) AS cnt
           FROM     table3
           GROUP BY column1) table3 ON table1.column1=table3.column1
“似乎不起作用”不是有效的问题描述。你有错误吗?错误的结果?还有别的吗?MySQL和SQL Server是两种不同的产品(具有一些非常不同的行为),您实际拥有哪种产品?由于我们在进行聚合,我们还需要知道行的分布(因为
COUNT(…)
否则可能返回不正确的结果);数据是什么样子的?