У меня есть 2 таблицы, к которым я хочу присоединиться определенным образом, чтобы получить все данные в каждой, даже если некоторые из объединенных полей могут отсутствовать в каждой, что-то вроде полного внешнего соединения.
Таблица А
+--------+-------+------+-------+
| Group | Name | Year | Value |
+--------+-------+------+-------+
| 1 | Joe | 2018 | 23 |
| 1 | Joe | 2019 | 56 |
| 2 | Fred | 2019 | 89 |
| 2 | Fred | 2020 | 45 |
+--------+-------+------+-------+
Таблица Б
+-------+------+------+-------+----------+
| Group | Name | Year | Scope | Status |
+-------+------+------+-------+----------+
| 1 | Joe | 2019 | 78 | Approved |
| 2 | Fred | 2018 | 12 | Approved |
| 2 | Fred | 2020 | 987 | Started |
| 2 | Fred | 2021 | 321 | Sent |
+-------+------+------+-------+----------+
Я хочу присоединиться к A.Group = B.Group и A.Year = B.Year, но когда год существует на одном, а не на другом, на другой стороне отображается нуль. Таким образом, будет строка для каждого имени для каждого года и соответствующих значений или 0/null в зависимости от того, что доступно. Таким образом, результат для этого примера должен выглядеть так:
Таблица А и Б
+---------+--------+--------+---------+---------+--------+--------+---------+----------+
| A.Group | A.Name | A.Year | A.Value | B.Group | B.Name | B.Year | B.Scope | B.Status |
+---------+--------+--------+---------+---------+--------+--------+---------+----------+
| 1 | Joe | 2018 | 23 | 1 | Joe | 2018 | 0 | <null> |
| 1 | Joe | 2019 | 56 | 1 | Joe | 2019 | 78 | Approved |
| 1 | Joe | 2020 | 0 | 1 | Joe | 2020 | 0 | <null> |
| 1 | Joe | 2021 | 0 | 1 | Joe | 2021 | 0 | <null> |
| 2 | Fred | 2018 | 0 | 2 | Fred | 2018 | 12 | Approved |
| 2 | Fred | 2019 | 89 | 2 | Fred | 2019 | 0 | <null> |
| 2 | Fred | 2020 | 45 | 2 | Fred | 2020 | 987 | Started |
| 2 | Fred | 2021 | 0 | 2 | Fred | 2021 | 321 | Sent |
+---------+--------+--------+---------+---------+--------+--------+---------+----------+