1

私は2つのテーブルを持っています:

  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

つまり、セクションに属するアイテムをセクション自体の下に配置します。

1 つのクエリだけでこのような結果を達成することは可能ですか?

編集

今のところ私は を使用しINNER JOINていますが、私の目的には完全には適していません: クエリ内の個別のセクションの正確な数を知る必要があり、次のセクションの正確な位置を知ることができれば素晴らしいことです (今のところ私は並べ替えsection_idて変更を探しているだけです)

4

2 に答える 2

3

おそらくこのように、ここにいくつかのフィドルがあります

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
于 2013-02-13T17:24:04.840 に答える
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
于 2013-02-13T17:28:24.193 に答える