Mysql SQL 2在一个查询中使用count左连接
我有一个SQL查询: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
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(…)
否则可能返回不正确的结果);数据是什么样子的?