Hi so this question has been asked before, but I am not only just trying to extract the records that do not just exist in the first table, but also the mapping from the first table where they don’t?
Eg.
Assuming I will join using Month and Year–
Table 1:
| Month | Year |
|---|---|
| 3 | 2021 |
| 4 | 2021 |
| 5 | 2021 |
| 6 | 2023 |
Table 2:
| ID | Month | Year |
|---|---|---|
| 11 | 3 | 2021 |
| 22 | 4 | 2021 |
| 33 | 5 | 2021 |
Output:
| ID | Month | Year |
|---|---|---|
| 11 | 6 | 2023 |
| 22 | 6 | 2023 |
| 33 | 6 | 2023 |
Advertisement
Answer
From what you say and show, you want to cross join all table 2 rows to the table 1 rows that don’t have a match in table 2. For the lookup you can use NOT EXISTS.
select t2.id, t1.month, t1.year from t1 cross join t2 where not exists ( select null from t2 where t2.year = t1.year and t2.month = t1.month );