Postgresql 当两个相等的数字在两个表的同一列中时查找
我有两张这样做的桌子: tb1: tb2: 预期查询的结果如下: tfr: 从两个表的第7列中tb1.id=1和tb2.id=1的第一行开始,有两个相等的值, 因此,编号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第1行、r0第3行和f2、r2的数字90和82分别相等,并将显示在列fr13中 如何实现这个查询Postgresql 当两个相等的数字在两个表的同一列中时查找,postgresql,Postgresql,我有两张这样做的桌子: tb1: tb2: 预期查询的结果如下: tfr: 从两个表的第7列中tb1.id=1和tb2.id=1的第一行开始,有两个相等的值, 因此,编号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)行)匹
提前感谢您的考虑 那么为什么(tab1.id,tab2.id,f/r col):(2,2,7)和(2,3,9)被排除在期望的结果之外呢。顺便说一句,你到底想解决什么问题,请用需求术语而不是sql和/或表格来解释。您好,谢谢您的回答。。我不明白你对(2,2,7)和(2,3,9)的意思。。如果您谈到数字87,它将包含在fr22列中,但在示例中它尚未报告。表tb1的f列将仅与编号相同的表tb2的r列进行比较,只有行(id)的位置发生变化。因此,永远不会有一列f0与r1、r2进行比较。。但仅使用列r0。。这在本质上一点关系都没有。好像它真的不适合SQL。
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)
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)
id fr11 fr12 fr21 fr13
---+------+------+------+------
0 | - | - | - | 90
1 | - | 81 | - | -
2 | - | - | 62 | 82
3 | - | - | - | -
4 | - | - | - | -
5 | - | 85 | - | -
6 | - | - | - | -
7 | 77 | - | - | -
8 | - | - | - | -
9 | - | - | - | -