テーブルをクエリして、複雑な順序付けスキームでレコードを取得する必要があります。
3つの個別のクエリで必要な結果を取得し、プログラミングコードで取得した後、ブルートフォースで結果を連結できます。
むしろ、データベースへの1回の呼び出しで、1つのデータベースですべてを取り戻したいと思います。
委員会名と小委員会名を記載した「委員会」という表があります。
committee_name subcomittee_name
-------------- -----------------
Hals Committee on Books
Hals Committee on Books Subcommittee on Paperbacks
Hals Committee on Books Subcommittee on Leather Bound Volumes
General Purpose Committee
Stans Committee on Music
Stans Committee on Music Subcommittee on CDs
Stans Committee on Music Subcommittee on MP3s
すべての小委員会は親委員会に属しています。
すべての委員会に小委員会があるわけではありません。
すべての委員会には、新しい/別の委員会を区別するための小委員会のnullエントリがあります
委員会と小委員会の名前をすべて、昇順で並べ替えて戻したいと思いますが、ひねりを加えています。最初にリストされているすべての「スタン」委員会、次にハルス、そして他の委員会をお願いします。
例:
committee_name subcomittee_name
-------------- -----------------
Stans Committee on Music
Stans Committee on Music Subcommittee on CDs
Stans Committee on Music Subcommittee on MP3s
Hals Committee on Books
Hals Committee on Books Subcommittee on Paperbacks
Hals Committee on Books Subcommittee on Leather Bound Volumes
General Purpose Committee
私は3つの別々のクエリでそれを得ることができます:
select * from committee where substr(committee_name,1,1) = 'S' order by committee_name,subcommittee_name nulls first
select * from committee where substr(committee_name,1,1) = 'H' order by committee_name,subcommittee_name nulls first
select * from committee where substr(committee_name,1,1) not in ('H','S') order by committee_name,subcommittee_name nulls first
私が欲しいのは、たった1つのクエリ、データベースへの1回のトリップで必要なものを取得することです。
何か案は?
スティーブ