COUNT更改加入另一个表MySQL

时间:2017-11-15 13:29:54

标签: mysql sql database count

我有以下数据库结构

Table Employee:

Name     ENr    
Name 1   1
Name 2   2
Name 3   3
...

Table Travel:

Employee  Costs
Name 1    8000
Name 1    56000
Name 2    800

等等。

现在我想选择员工姓名,旅行计数和平均成本,以及ENr

到目前为止我的SQL Select:

SELECT   employee,  COUNT(travel.employee), AVG(costs) FROM  travel  GROUP BY employee

但是,一旦我尝试与员工表连接以添加ENr,我的计数就完全错了。 我试图用简单的方式连接:

SELECT ENr, Employee.. FROM travel, employee

还有INNER JOIN。

希望有人可以帮助我:)

1 个答案:

答案 0 :(得分:2)

从不FROM子句中使用逗号。 始终使用正确的JOIN语法。

您需要JOIN条件:

SELECT e.name, e.eNR, COUNT(*), AVG(t.costs)
FROM employee e JOIN
     travel t
     ON e.name = t.name
GROUP BY e.name, e.eNR;

补充意见:

  • 如果查询中有多个表,请使用表别名和限定列名。
  • GROUP BY
  • 中包含所有非汇总列
  • name是一个糟糕的外键。通常,您希望外键是唯一的(名称可能不唯一)。对于索引目的,数字更有效。