加入+计数第二个表

时间:2015-11-09 12:44:41

标签: mysql sql join

我只是想知道有多少prod与表emp中的id相关联,我找不到。我想得到所有的emp字段+字段,名为totalProducts,其中包含带有id的链接行的数量,我该怎么办呢?我正在尝试这个并且没有工作:

 select emp.*, 
        COUNT(prod.*) AS totalProducts 
 from emp_fin emp 
      JOIN product2 prod on emp.id = prod.id_emp group by emp.id;

得到如下错误:您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在'*)...

附近使用正确的语法

谢谢大家!

2 个答案:

答案 0 :(得分:2)

不要在count(*)使用别名:

select emp.*, COUNT(*) AS totalProducts
from emp_fin emp JOIN
     product2 prod
     on emp.id = prod.id_emp
group by emp.id;

如果您想要包含没有产品的emps,请使用left join并执行以下计算:

select emp.*, count(prod.id_emp) AS totalProducts
from emp_fin emp left join
     product2 prod
     on emp.id = prod.id_emp
group by emp.id;

答案 1 :(得分:1)

如果你想要计算所有prod记录,请选择toe prod表的id_emp(或另一个notnull字段)来计算它们。

SELECT
    emp.*,
    COUNT(prod.id_emp) AS totalProducts
FROM emp_fin emp
LEFT OUTER JOIN product2 prod
    on emp.id= prod.id_emp
group by emp.id