У меня есть 2 таблицы, к которым я хочу присоединиться особым образом c для извлечения всех данных в каждой, даже если некоторые из соединенных полей могут не существовать в каждой, что-то вроде полного внешнего соединения .
Таблица A
+--------+-------+------+-------+
| Group | Name | Year | Value |
+--------+-------+------+-------+
| 1 | Joe | 2018 | 23 |
| 1 | Joe | 2019 | 56 |
| 2 | Fred | 2019 | 89 |
| 2 | Fred | 2020 | 45 |
+--------+-------+------+-------+
Таблица B
+-------+------+------+-------+----------+
| 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 / ноль в зависимости от того, что доступно. Таким образом, результат для этого примера должен выглядеть следующим образом:
Таблица A и B
+---------+--------+--------+---------+---------+--------+--------+---------+----------+
| 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 |
+---------+--------+--------+---------+---------+--------+--------+---------+----------+