- 表
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
的多个行之一。ELEM/DET
因此,如果我有 100 行TRANS
并运行查询,我将返回 > 100 行,这是不需要的。
但是,我确实想知道有多少DET
行具有d.category=1
,但是如果我加入该条件,我会得到 < 100 行(只有具有该条件的行。
我想要蛋糕,也想吃。我想检索TRANS
一个日期范围内的所有行,并让我得到结果其中的行数d.category=1
。如果d.category != 1
那时我不在乎那里有什么,只要该TRANS
行仍然返回即可。