- テーブル
TRANS
にはトランザクション情報が含まれています(transaction_id, date, foo, bar
) - テーブル
ELEM
にはトランザクションの要素が含まれています(transaction_id, detail_id
) - 表
DET
には要素の詳細が含まれています(detail_id, size, weight, category
)
クエリ:
select * from TRANS t
join ELEM e on (t.transaction_id = e.transaction_id)
join DET d on (e.detail_id = d.detail_id)
ただし、TRANS
1つ以上のELEM/DET
行が関連付けられている場合があります。したがって、100行TRANS
あり、クエリを実行すると、100行を超える値が返されますが、これは望ましくありません。
DET
ただし、。の行を持つトランザクションの数を知りたいのですがd.category=1
、その条件で結合すると、100行未満になります(その条件の行のみ)。
ケーキも食べたいです。TRANS
日付範囲内のすべての行を取得し、結果として行数を取得したいd.category=1
。その場合、行が返さd.category != 1
れる限り、そこに何があるかは気にしません。TRANS