我有以下数据库结构
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。
希望有人可以帮助我:)
答案 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
是一个糟糕的外键。通常,您希望外键是唯一的(名称可能不唯一)。对于索引目的,数字更有效。