CREATE VIEW EMPJOBS AS
SELECT EMPLOYEE.employee_id AS ENUM,
CONCAT(EMPLOYEE.first_name,
' ' , EMPLOYEE.last_name) AS NAME,
EMPLOYEE.email AS EMAIL,
COUNT(JOBHISTORY.end_date) AS FINISHEDJOBS
FROM EMPLOYEE, JOBHISTORY
WHERE JOBHISTORY.employee_id = EMPLOYEE.employee_id;
这就是我的声明。我知道这是错误的,因为它显示的是:
它将 end_date 一起算作一个大计数。我怎样才能让它对每个单独的 ENUM 都有效?
谢谢!
最佳答案
在末尾添加group by
子句。
CREATE VIEW EMPJOBS AS
SELECT
e.employee_id AS ENUM,
CONCAT(e.first_name,
' ' , e.last_name) AS NAME,
e.email AS EMAIL,
COUNT(j.end_date) AS FINISHEDJOBS
FROM EMPLOYEE e
inner join JOBHISTORY j
on j.employee_id = e.employee_id
group by
e.employee_id
,CONCAT(e.first_name,' ', e.last_name)
,e.email;
作为最佳实践,尝试使用正确的连接语法来连接表,而不是使用逗号。还要为表名称添加别名以避免混淆和可读性。
关于mysql - 如何使用联接从两个表创建一个 View ,以显示另一个表的 COUNT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44213275/