2017-07-02 69 views
1

我有2臺這樣的選擇具有相同的列2表而不加入

---------tbl1---------------- 
id | name | lname | 
1  j   h 
2  jj   hh 

---------tbl2---------------- 
_id | name | lname | 
1  a   b 
2  aa  bb 
3  aaa  ccc 

我想從這個2臺這樣的選擇:

---------result---------------- 
resultId | id | name | lname | 
    1   1  j   h 
    2   2  jj  hh 
    3   1  a   b 
    4   2  aa  bb 
    5   3  aaa  ccc 

但選擇使用加入結果不是這種格式!我能做些什麼來訪問這個選擇結果?

回答

3

你基本上是尋找union all

select row_number() over (order by which, id) as resultid, 
     id, name, lname 
from ((select id, name, lname, 1 as which from tbl1 
    ) union all 
     (select _id, name, lname, 2 as which from tbl2 
    ) 
    ) n 
order by which, id; 

唯一棘手的部分是利用row_number()分配最終resultid

+0

謝謝。這很有用。 –

相關問題