我有3个表需要连接,最终结果是某些列的枢轴.
情况如下:
表1
ID | COLUMN_A | COLUMN_B | COLUMN_C | COLUMN_G | NN_COLUMN_H | NN_COLUMN_I |
---|---|---|---|---|---|---|
1 | 10 | 1 | Aa | 123aa | null | null |
1 | 20 | 2 | Aa | 56211 | blah | null |
1 | 30 | 3 | Aa | 123aa | vvvv | null |
2 | 40 | 4 | Bb | 678cf | null | null |
2 | 50 | 5 | Bb | 56211 | blah | mmmm |
表2
ID | COLUMN_C | COLUMN_J | NN_COLUMN_K |
---|---|---|---|
Aa_G | Aa | AaA | null |
Aa_G | Bb | AaA | null |
Aa_G | Cc | AaA | 1234 |
Aa_G | Dd | AaA | 5678 |
表3
ID | COLUMN_D | COLUMN_E | COLUMN_F | COLUMN_L | NN_COLUMN_M | NN_COLUMN_N |
---|---|---|---|---|---|---|
1 | VALUE1 | 10 | 01-03-2024 | True | 12 | 0000a |
1 | VALUE1 | 11 | 02-03-2024 | True | 34 | 0000b |
1 | VALUE2 | 10 | 01-03-2024 | True | 56 | 0000b |
2 | VALUE1 | 15 | 01-03-2024 | True | 78 | 0000b |
2 | VALUE2 | 12 | 01-03-2024 | True | 89 | 0000s |
2 | VALUE2 | 12 | 02-03-2024 | True | 45 | 00001 |
表4,最终结果
ID | VALUE1 | VALUE2 | COLUMN_F | COLUMN_C | COLUMN_G | COLUMN_J | COLUMN_L |
---|---|---|---|---|---|---|---|
1 | 10 | 10 | 01-03-2024 | Aa | Aa_G | AaA | True |
1 | 11 | null | 02-03-2024 | Aa | Aa_G | AaA | True |
2 | 15 | 12 | 01-03-2024 | Bb | Aa_G | AaA | True |
2 | null | 12 | 02-03-2024 | Bb | Aa_G | AaA | True |
我try 了以下几种方法:
SELECT *
FROM
TABLE3
LEFT JOIN TABLE1
ON TABLE3.ID = TABLE1.ID
LEFT JOIN TABLE2
ON TABLE1.COLUMN_C = TABLE2.COLUMN_C
WHERE TABLE3.COLUMN_D in ('VALUE1', 'VALUE2')
然而,对于在哪里或如何实现轴心线,我陷入了困境. 应该透视的列是表3中的Column_D和Column_E.