求高手帮忙,这个SQL语句怎么写,万分感谢
这个问题困扰了很久,上次提问可能我没描述清楚,没有得到正确的答案,今天详细描述,希望哪位热心大侠能耐心看完描述,如能解决,万分感激,拜谢!数据库里有两个表 SMT_yp(用户表) 和 SMT_cp(产品表)
其中 SMT_cp(产品表) 中的SMT_yp_id 字段对应SMT_yp(用户表)中的SMT_id字段
1、SMT_cp表里主要字段说明:SMT_id(自动编号字段) SMT_date(产品发布时间字段) SMT_yp_id(对应用户表的用户SMT_id字段) SMT_cpjg(产品价格字段)、SMT_cpname(产品名称字段)
2、SMT_yp表里主要字段说明:SMT_id(自动编号字段) SMT_date(用户注册时间字段) SMT_coname(用户名称字段)SMT_vip(用户等级字段)
3、这是我原来的SQL语句:查询结果是先查询出每个用户发布的产品中SMT_id最大的一条产品显示,然后再查询每个用户发布的所有产品显示,根据用户发布产品的时间、用户等级进行排序。
sql="select SMT_cp.SMT_id as cpid,SMT_cp.SMT_date,SMT_cp.SMT_cpjg,SMT_cp.SMT_cpname,SMT_cp.SMT_yp_id,SMT_yp.SMT_id,SMT_yp.SMT_coname,SMT_yp.SMT_vip,0 as px from SMT_cp,SMT_yp where SMT_cp.SMT_id in (select max(SMT_cp.SMT_id) from SMT_cp Where 1=1 group by SMT_cp.SMT_yp_id )and SMT_cp.SMT_yp_id=SMT_yp.SMT_id
union all
select SMT_cp.SMT_id as cpid,SMT_cp.SMT_date,SMT_cp.SMT_cpjg,SMT_cp.SMT_cpname,SMT_cp.SMT_yp_id,SMT_yp.SMT_id,SMT_yp.SMT_coname,SMT_yp.SMT_vip,1 as px from SMT_cp,SMT_yp where SMT_cp.SMT_yp_id=SMT_yp.SMT_id order by px,SMT_yp.paixu,SMT_cp.SMT_date DESC"
4、现在需要对这句SQL语句进行修改:想要得到的查询结果是先查询出每个用户产品发布时间SMT_date最新的一条产品,(因为用户在后台可对自己发布的全部产品进行一键更新全部产品时间,也可以更新单张产品的时间,这样有些用户一键更新后所有的产品发布时间都是相同的,有的选择单张更新的则会有时间先后顺序),
如果一些用户存在发布的所有产品时间全部相同情况,则提取他SMT_id最大的一张,接下来的就是显示每个用户发布的全部产品,根据用户发布产品的时间、用户等级进行排序。
希望能完整的看一下我的整个问题描述,是本人是菜鸟,回答尽量完整,帮帮忙,能够根据上面表的字段进行修改,万分感谢!