Я пытаюсь получить first_name и last_name из базы данных сотрудников, если emp_no (номер сотрудника) существует ровно 2 раза в dept_emp.
База данных сотрудников состоит из: сотрудников, отделов, dept_manager, dept_emp,заголовки, зарплаты.
USE employees;
SELECT emps.first_name,emps.last_name
FROM employees emps INNER JOIN
employees.dept_emp dm
ON emps.emp_no = dm.emp_no INNER JOIN
employees.titles t
ON t.emp_no = emps.emp_no INNER JOIN
employees.departments d
ON d.dept_no = dm.dept_no
HAVING COUNT(dm.emp_no) = 2
Пример из dept_emp, где первое значение emp_no:
(10045,'d004','1996-11-16','9999-01-01'),
(10046,'d008','1992-06-20','9999-01-01'),
(283344,'d001','1996-05-08','1997-11-25'),
(283344,'d009','1997-11-25','9999-01-01'),
Таблица сотрудников:
CREATE TABLE employees (
emp_no INT NOT NULL,
birth_date DATE NOT NULL,
first_name VARCHAR(14) NOT NULL,
last_name VARCHAR(16) NOT NULL,
gender ENUM ('M','F') NOT NULL,
hire_date DATE NOT NULL,
PRIMARY KEY (emp_no)
Таблица dept_emp:
CREATE TABLE dept_emp (
emp_no INT NOT NULL,
dept_no CHAR(4) NOT NULL,
from_date DATE NOT NULL,
to_date DATE NOT NULL,
FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE,
FOREIGN KEY (dept_no) REFERENCES departments (dept_no) ON DELETE CASCADE,
PRIMARY KEY (emp_no,dept_no)
Желаемый вывод: first_name и last_name, если emp_no встречается ровно дважды в dept_emp