SQL 2左连接在一个带有计数

时间:2016-02-28 07:34:17

标签: 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 table1 LEFT JOIN table2 ON table1.column1=table2.column2 
LEFT JOIN table3 ON table1.column1=table3.column1

代码似乎不起作用,可能出错?

1 个答案:

答案 0 :(得分:2)

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

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