Допустим, у меня есть три таблицы:
employees
, с столбцами id
и name
salaries
, с столбцами employee_id
, salary
, date
underlings
, с колонками employee_id
, number_of_underlings
, date
Я хочу объединить таблицы так, чтобы для каждого salaries
запись - это строка со значением salary
, name
, связанным с employee_id
этой строки, и значением number_of_underlings
, чья строка date
совсем недавно предшествует date
иззапись salaries
(т. е. количество подчиненных, которых имел бы данный сотрудник на момент получения заработной платы).
Например, предположим, что в описанных таблицах появляются следующие строки:
id | name employee_id | salary | date employee_id | number_of_underlings | date
---+------- -------------+---------+------------ -------------+----------------------+------------
13 | Sally 13 | 90000 | 2017-11-29 13 | 0 | 2017-05-13
13 | 95000 | 2018-01-01 13 | 6 | 2018-02-20
13 | 120000 | 2018-03-01
Тогда полученное объединение будет иметь строки:
name | salary | number_of_underlings | date
-------+---------+----------------------+------------
Sally | 90000 | 0 | 2017-11-29
Sally | 95000 | 0 | 2018-01-01
Sally | 120000 | 6 | 2018-03-01
Конечно, объединение таблиц employees
и salaries
тривиально, но как насчет таблицы underlings
?