从表A加入来自另一个表B的信息多次

时间:2018-03-09 22:59:58

标签: sql

所以这可能是一个简单的问题,但我想知道是否可以在一个查询中完成。

表A:包含基因信息

   gene start end
1     a     5   0
2     b     6   1
3     c     7   2
4     d     8   3
5     e     9   4
6     f    10   5
7     g    11   6
8     h    12   7
9     i    13   8
10    j    14   9

表B:包含计算的基因信息。

   gene1 gene2        cor
1      d     j -0.7600805
2      c     i  0.4274278
3      e     g -0.9249361
4      a     f  0.8567928
5      b     h -0.3018518
6      d     j -0.3723553
7      c     i  0.1617981
8      e     g  0.8575933
9      a     f  0.8409788
10     b     h  0.1506035

我想要的结果表是:

      gene1 gene2  cor     start1   end1    start2   end2   
1      d     j -0.7600805  8        3       14       9
2      c     i  0.4274278  7        2       13       8
3      e     g -0.9249361  
4      a     f  0.8567928
5      b     h -0.3018518
6      d     j -0.3723553            etc.
7      c     i  0.1617981
8      e     g  0.8575933
9      a     f  0.8409788
10     b     h  0.1506035

我能想到的方法是将表A连接到表B两次,首先是gene1,然后是gene2,这需要一个中间表。有没有更简单的方法可以一步到位?

1 个答案:

答案 0 :(得分:2)

是的,两个联接会做到这一点

您只需要这样做:

id    | item     | sortingId
3     |  test    | 1
1     |  test2   | 2
2     |  test3   | 3
8     |  test4   | 4
5     |  test5   | 5
6     |  test6   | 6
4     |  test7   | 7
7     |  test8   | 8

根据您的dbms,您可能需要稍微调整语法