2013-02-13 55 views
1

我有兩個表:從兩個表中選擇 - 通過排序結果外國和主鍵

  1. 科:_id,名
  2. 項目:_id,名稱,SECTION_ID

我試圖以這樣的方式排序結果:

1 Section1 
1 Item1 1 
2 Item2 1 
3 Item3 1 
2 Section2 
4 Item4 2 
5 Item5 2 

換句話說 - 將屬於該部分的項目放在該部分本身之下。

是否可以使用一個查詢來實現這樣的結果?

編輯

現在我使用INNER JOIN,但它不是完全適合我的目的:我想知道里面查詢不同部分的確切數量,這將是巨大的,如果我能要知道(現在我只是通過section_id排序和尋找它的變化)

+0

你打算展示你試過的嗎? – Jodrell 2013-02-13 17:13:10

+0

你是否想要顯示額外的數字,如果是的話,它們來自哪裏? – Jodrell 2013-02-13 17:15:13

+1

這是可能的,但我通常不認爲這是一個好主意。爲什麼你想純粹用SQL來完成? – 2013-02-13 17:16:00

回答

3

像這也許下一節的確切位置,here is some fiddle

select 
     s._id sid, 
     s.name, 
     null iid 
    from 
     section s 
union all 
select 
     i.section_id sid, 
     i.name, 
     i._id iid 
    from 
     item i 
    order by 
     sid, iid 
2

它可以像

select section._id as sectionId,section.name, 0 as itemId 
from section 
union 
select item.section_id as sectionId, item.name, item._id as itemId 
from item 
order by sectionId, itemId 
+1

Works,http://sqlfiddle.com/#!5/5c1d4/10 – 2013-02-13 17:45:51

相關問題