从两个表的两个列中提取值(Sqlite)

时间:2020-02-08 20:25:50

标签: sql sqlite join

我有两个单独的表,例如

tab.1    
col.1
1
2
3
tab.2
col.1 col.2
56    77
66    99
88    09

我希望结果获得第一个tab.1值和第二个tab.2 col.1值,例如

1 56
2 66
3 88

所有成员放第二个标签。第一个标签后的值。值,但我需要像上述样式一样。

1 个答案:

答案 0 :(得分:2)

如果结果取决于2列值的数字顺序,则使用row_number()窗口函数:

select t1.col1 tab1col1, t2.col1 tab2col1
from (select col1, row_number() over (order by col1) rn from tab1) t1  
inner join (select col1, row_number() over (order by col1) rn from tab2) t2  
on t1.rn = t2.rn

请参见demo
如果col1tab1的值实际上是:1、2、3,...,则row_number()不需要tab1

select t1.col1 tab1col1, t2.col1 tab2col1
from tab1 t1  
inner join (select col1, row_number() over (order by col1) rn from tab2) t2  
on t1.col1 = t2.rn

请参见demo
结果:

| tab1col1 | tab2col1 |
| -------- | -------- |
| 1        | 56       |
| 2        | 66       |
| 3        | 88       |