- 表
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行仍然返回即可。