これらのテーブルがあり、そこからブラウザに検索結果を表示する必要があるとします。
Table: Containers
id | name
1 Big Box
2 Grocery Bag
3 Envelope
4 Zip Lock
Table: Sale
id | date | containerid
1 20100101 1
2 20100102 2
3 20091201 3
4 20091115 4
Table: Items
id | name | saleid
1 Barbie Doll 1
2 Coin 3
3 Pop-Top 4
4 Barbie Doll 2
5 Coin 4
次のような出力が必要です。
itemid itemname saleids saledates containerids containertypes
1 Barbie Doll 1,2 20100101,20100102 1,2 Big Box, Grocery Bag
2 Coin 3,4 20091201,20091115 3,4 Envelope, Zip Lock
3 Pop-Top 4 20091115 4 Zip Lock
重要な部分は、各項目タイプが画面の戻り値で 1 つのレコード/行のみを取得することです。過去に、同じアイテムの複数の行を返し、スクリプト言語を使用して出力を制限することで、これを達成しました。ただし、これにより、UI が過度に複雑になり、ルーピーになります。ですから、表示する行と同じ数のレコードだけをデータベースに吐き出させることができると思っています。
この例は、項目から (sale テーブルを介して) コンテナーに到達するために 2 つの結合が必要なため、少し極端かもしれません。
これを出力するクエリの例だけでもうれしいです:
itemid itemname saleids saledates
1 Barbie Doll 1,2 20100101,20100102
2 Coin 3,4 20091201,20091115
3 Pop-Top 4 20091115
サブクエリで返すことができる結果は 1 つだけなので、これを行う方法がわかりません。