Возможно ли это множественное объединение двух таблиц? - PullRequest
0 голосов
/ 07 августа 2020

У меня есть 2 таблицы, и мне трудно присоединиться к ним, чтобы получить желаемый результат.

Первая таблица называется Future. Это будущие встречи.

Date         Name    Subject          Importance    Location
7/08/2020    David   Work             1             London
7/08/2020    George  Updates          2             New York
7/08/2020    Frank   New Appointments 5             London
7/08/2020    Steph   Policy           1             Paris

Вторая таблица называется предыдущей. Это предыдущие встречи, которые у меня были.


Date         Name    Subject         Importance    Location     Time      Rating
1/08/2020    David   Work            3             London       23.50     4
2/10/2018    David   Emails          3             New York     18.20     3
1/08/2019    George  New Appointments5             London       55.10     2
3/04/2020    Steph   Dismissal       1             Paris        33.20     5 

Теперь мне нужно сослаться на мою предыдущую таблицу по имени, чтобы увидеть предыдущие встречи, которые у меня были с этим человеком, и мне нужны все данные из предыдущей Столик там. Мне также нужно ограничить его показом не более 5 предыдущих встреч с каждым человеком.


Date         Name    Subject         Importance    Location     Time      Rating
7/08/2020    David   Work            1             London       -         -
1/08/2020    David   Work            3             London       23.50     4
2/10/2018    David   Emails          3             New York     18.20     3
7/08/2020    George  Updates         2             New York     -         -
1/08/2019    George  New Appointments5             London       55.10     2

Столбец Name должен быть левым соединением, но тогда мне нужно просто выполнить обычное соединение с другим столбцы. Также не знаете, как ограничить результаты имен максимум 5 одинаковыми значениями. Заранее благодарим за помощь.

1 Ответ

0 голосов
/ 07 августа 2020

По сути, вы хотите union all:

select m.*
from ((select Date, Name, Subject, Importance, Location, NULL as time, NULL as rating
       from future
      ) union all
      (select Date, Name, Subject, Importance, Location, time, rating
       from previous
      ) 
     ) m
group by name, date desc;

К этому результату можно применить другие условия. Непонятно, какие еще условия вы действительно хотите, но это начало.

...