Mysql выбор значений из 4 объединенных таблиц - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь получить имя, фамилию, дату и дату окончания всех сотрудников, имеющих звание «Старший персонал» и работающих в финансовом отделе.

сотрудников:

# emp_no, birth_date, first_name, last_name, gender, hire_date
'10001', '1953-09-02', 'Georgi', 'Facello', 'M', '1986-06-26'
'10002', '1964-06-02', 'Bezalel', 'Simmel', 'F', '1985-11-21'
'10003', '1959-12-03', 'Parto', 'Bamford', 'M', '1986-08-28'

employee.departments

# dept_no, dept_name
'd002', 'Finance'
'd003', 'Human Resources'

employee.dept_manager

# emp_no, dept_no, from_date, to_date
'110022', 'd001', '1985-01-01', '1991-10-01'
'110039', 'd001', '1991-10-01', '9999-01-01'

employee.titles

# emp_no, title, from_date, to_date
'10001', 'Senior Engineer', '1986-06-26', '9999-01-01'
'10002', 'Staff', '1996-08-03', '9999-01-01'

Текущий ввод

SELECT emps.first_name,emps.last_name, t.title, start_date, end_date
FROM employees emps INNER JOIN
     employees.dept_manager dm INNER JOIN
     employees.titles t INNER JOIN
     employees.departments d
     ON t.emp_no = emps.emp_no
WHERE t.title = 'Senior Staff' and d.dept_name = 'Finance' ;

Это привелов ошибке 1052: from_date в столбце неоднозначно

Есть ли какие-либо предложения для получения правильного вывода?

1 Ответ

0 голосов
/ 19 сентября 2018

Вам нужна таблица alias, если у вас есть такое же имя столбца, что и в другой таблице.

Во-вторых, ваш текущий запрос имеет много неправильных синтаксисов, таких как JOIN без предложения ON.Итак, правильная версия должна выглядеть так:

SELECT emps.first_name,emps.last_name, t.title, t.start_date, t.end_date
------------------------------------------------^-------------^
FROM employees emps INNER JOIN
     employees.dept_manager 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
WHERE t.title = 'Senior Staff' and d.dept_name = 'Finance';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...