商家表:tblA
{
帐号:tblA_user
字段:tblA_a
字段:tblA_b
....
....
}
产品表: tblB
{
产品标识ID:fldid
商家帐号:tblA_user -- 就是上面商家表里的帐号
字段:tblB_a
字段:tblB_b
刷新时间:tblB_update
....
....
}
我想按产品表tblB_update的倒序查出来最新时间20条,但是同一商家只显示一条产品信息(显示出我己列的二个表字段,其它的则不显示),就是说要显示20个商家与其对应的20条产品
实在是没分了,不好意思!!谢谢~
------解决方案--------------------
- SQL code
select top 20 * from tblA a,tblB b where a.tblA_user=b.tblA_user and not exists(select 1 from tblB where tblA_user=b.tblA_user and tblB_update>b.tblB_update)order by b.tblB_update desc
------解决方案--------------------
select top 20 m.*,n.* from tblB m , tblA n
where m.tblA_user = n.tblA_user and
tblB_update = (select max(tblB_update) from tblB where tblA_user = m.tblA_user)
order by m.tblB_update desc
select top 20 m.*,n.* from tblB m , tblA n
where m.tblA_user = n.tblA_user and
not exists (select 1 from tblB where tblA_user = m.tblA_user and tblB_update > m.tblB_update)
order by m.tblB_update desc
------解决方案--------------------
我在上面说了这个,你自己没看.
如果不能通过时间确定唯一性,则需要再加上一个字段来判断.
select top 20 m.*,n.* from tblB m , tblA n
where m.tblA_user = n.tblA_user and
not exists (select 1 from tblB where tblA_user = m.tblA_user and (tblB_update > m.tblB_update or (tblB_update = m.tblB_update and fldid > m.fldid)))
order by m.tblB_update desc