我有两个这样的表格:
tb1:
id f0 | f1 | f2 | f3 | f4 | f5 | f6 | f7 | f8 | f9
---+----+----+----+----+----+----+----+----+----+----
1 90 | 81 | 82 | 83 | 54 | 85 | 86 | 77 | 88 | 79
2 80 | 1 | 62 | 63 | 74 | 55 | 6 | 87 | 68 | 49
...
(9 rows)
tb2:
id r0 | r1 | r2 | r3 | r4 | r5 | r6 | r7 | r8 | r9
---+-----+----+----+----+----+----+----+----+----+----
1 70 | 11 | 62 | 3 | 44 | 5 | 56 | 77 | 38 | 9
2 50 | 81 | 2 | 23 | 14 | 85 | 26 | 87 | 58 | 19
3 90 | 51 | 82 | 33 | 64 | 25 | 16 | 27 | 48 | 49
---
(9 rows)
预期查询的结果是这样的:
tfr:
id fr11 fr12 fr21 fr13
---+------+------+------+------
0 | - | - | - | 90
1 | - | 81 | - | -
2 | - | - | 62 | 82
3 | - | - | - | -
4 | - | - | - | -
5 | - | 85 | - | -
6 | - | - | - | -
7 | 77 | - | - | -
8 | - | - | - | -
9 | - | - | - | -
从tb1.id = 1和tb2.id = 1的第一行开始,仅在两个表的第7列中都有两个相等的值, 因此数字77将显示在第7行的fr11列中,而在同一列的其他行上将有一个破折号。
在两个表的第1列和第5列中以tb1.id = 1和tb2.id = 2前进,您将分别找到两个相等的数字81和85 它将显示在fr12列的第1行和第5行的位置。
再次以tb1.id = 2和tb2.id = 1在第2列上匹配数字62(f2行(2)和r2行(1))。
tb1.id = 1和tb2.id = 3的相同过程,f0 row1,r0 row 3和f2,r2列的数字90和82分别相等,并将显示在fr13列中。
该查询如何实现?
提前感谢您的考虑!