Jump to content
新域网络技术论坛

Mysql复杂过滤示例


Jamers
 Share

Recommended Posts

先不说什么,看语句:

select p.*,dt.* from list_pdata p left join 
(select d.* from op_details d INNER join 
    (select code,substring_index(GROUP_CONCAT(id order by cftime desc),',',1) cid from op_details 
        where status=1 and cftime<=UNIX_TIMESTAMP() group by code
    ) t on t.code=d.code and d.id=t.cid
) as dt
on p.code=dt.code order by p.code

先来解释几个表:

list_pdata  里面有所有的点位数据,code唯一

op_details 里面是所有点位的操作数据,code与pdata相对应,status=1 及 cftime的条件为的是看完成的时间点

 

我想做的是,从list_pdata中取所有数据,把op_details指定条件内的对应code值的最后一条记录给结联上去。因为group by 无法排序取其它数值,只能够用group_concat加排序,取第一个ID记录进行结联。

 

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...