- テーブル
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)
ただし、TRANS1つ以上のELEM/DET行が関連付けられている場合があります。したがって、100行TRANSあり、クエリを実行すると、100行を超える値が返されますが、これは望ましくありません。
DETただし、。の行を持つトランザクションの数を知りたいのですがd.category=1、その条件で結合すると、100行未満になります(その条件の行のみ)。
ケーキも食べたいです。TRANS日付範囲内のすべての行を取得し、結果として行数を取得したいd.category=1。その場合、行が返さd.category != 1れる限り、そこに何があるかは気にしません。TRANS