I can't come up with a working SQL code that gives me Outcome_Table. Need to LEFT JOIN 2 columns from Table_B to Table_A where IF A.srid is null, it joins by odid ELSE joins by srid
Table_A
| Column A.* | A.srid | A.odid |
| Cell 1 | | 111 |
| Cell 2 | | 222 |
| Cell 3 | qwe123 | 333 |
| Cell 4 | q1w2e3 | 444 |
Table_B
| Column B.* | B.srid | B.odid |
| Cell 1 | qwe123 | 555 |
| Cell 2 | q1w2e3 | 666 |
| Cell 3 | | 111 |
| Cell 4 | 321ewq | 777 |
| Cell 5 | qwe123 | 555 |
Outcome_Table
| Column A.* | A.srid | A.odid | B.srid | B.odid |
| Cell 1 | | 111 | | 111 |
| Cell 2 | | 222 | | |
| Cell 3 | qwe123 | 333 | qwe123 | 555 |
| Cell 4 | q1w2e3 | 444 | q1w2e3 | 666 |
I've tried this SQL query:
SELECT Table_A.* , Table_B.odid, Table_B.srid FROM Table_A LEFT JOIN Table_B ON Table_A.srid = Table_B.srid OR Table_A.odid = Table_B.odid
It appears to work extremely slow and not even sure/can't confirm if the results were true. Cannot update my Outcome_Table in Power BI with this query. Please, help me getting desired result in the Outcome_Table example.
You can do with union all for two query like this below
SELECT Table_A.* , Table_B.odid, Table_B.srid FROM Table_A LEFT JOIN Table_B ON Table_A.srid = Table_B.srid where Table_A.srid is not null Union all SELECT Table_A.* , Table_B.odid, Table_B.srid FROM Table_A LEFT JOIN Table_B ON Table_A.odid = Table_B.odid where Table_A.srid is null