mysql - 如何使用联接从两个表创建一个 View ,以显示另一个表的 COUNT?

标签 mysql sql database

    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;

这就是我的声明。我知道这是错误的,因为它显示的是:

enter image description here

它将 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/

相关文章:

php - 如何创建两个查询mysql插入和创建表

database - Sybase中的游标有多慢

php - 我想从 MySQL 数据库中获取时间列

php - 如何用php将两种不同形式的输入存储在mySQL数据库中?

mysql - 如何最好地标准化人员数据库、给出的表选项

sql - 按查询分组,总和所有值

android - 如何以编程方式创建 ScrollView ?

mysql - 从评估其中一个结果的表中加入

mysql - 如何使查询更新 fasion mysql 的查找和替换排序中的列?

MySQL : How to get records are have non null values?