ฉันมี 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 และ 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 |
+---------+--------+--------+---------+---------+--------+--------+---------+----------+