У меня есть две таблицы, скажем,
Table1
| pk1 | pk2 | pk3 |field1 |
|:-----------|------------:|:-----------:|:-----------|
| 1 | 1 | 1 | abc1|
| 1 | 1 | 2 | abc2|
| 2 | 1 | 2 | abc3|
| 3 | 2 | 1 | abc4|
| 4 | 1 | 2 | abc5|
| 5 | 3 | 1 | abc6|
| 6 | 1 | 1 | abc7|
Table2
| pk1 | pk2 | pk3 |field2 |
|:-----------|------------:|:-----------:|:-----------|
| 1 | 1 | 1 | bc1|
| 1 | 3 | 4 | bc2|
| 2 | 2 | 1 | bc3|
| 5 | 1 | 2 | bc4|
| 7 | 3 | 1 | bc5|
| 8 | 1 | 1 | bc6|
Слева сначала соединяются две таблицы на pk1, поэтому я получаю записи с pk1 = 1,2,5
А затем полное другое соединение двух таблиц на pk2 и pk3,
так что я получаю этот результат:
| pk1 | pk2 | pk3 |field1 |field2 |
|:-----------|------------:|:-----------:|:-----------|:-----------|
| 1 | 1 | 1 | abc1| bc1|
| 1 | 1 | 2 | abc2| |
| 1 | 3 | 4 | | bc2|
| 2 | 1 | 2 | abc3| |
| 2 | 2 | 1 | | bc3|
| 5 | 3 | 1 | abc6| |
| 5 | 1 | 2 | | bc4|