比方一个主表,一个子表,子表中的"上级ID"字段和主表的ID是关联的。
比方主表是产品表,子表是销售表,一个销售表有相同产品的多次记录。同时还有客户名称。
现在的问题是想把主表全查出来,按某个客户名称查其相关的购买日期,数量。主要问题在于:如查有100个产品,那这100个产品名称和型号都要显示出来,然后后面加上2个字段,购买日期,数量,
加上的这2个字段显示最后一条交易,如果这个客户没买过某个产品,那购买日期和数量就显示为空。
比方主表是产品表,子表是销售表,一个销售表有相同产品的多次记录。同时还有客户名称。
现在的问题是想把主表全查出来,按某个客户名称查其相关的购买日期,数量。主要问题在于:如查有100个产品,那这100个产品名称和型号都要显示出来,然后后面加上2个字段,购买日期,数量,
加上的这2个字段显示最后一条交易,如果这个客户没买过某个产品,那购买日期和数量就显示为空。
where a.id=b.上级ID
and not exists(select 1 from 销售表 where 产品id=b.产品id and 购买日期>a.购买日期)
select * from
产品表 a left join 销售表 b on a.id=b.上级ID
and not exists(select 1 from 销售表 where 产品id=b.产品id and 购买日期>a.购买日期)
*
from
产品表 a
left join 销售表 b on
a.id=b.上级ID
and
购买日期=(selectmax(购买日期) from 销售表 where 产品id=b.产品id )
*
from
产品表 a
left join 销售表 b on
a.id=b.上级ID
and
购买日期=(select max(购买日期) from 销售表 where 产品id=b.产品id )