表扫描,连索引都没有!!!!SELECT * FROM 基本信息表1 LEFT JOIN ( SELECT * FROM 基本沟通表1 WHERE Gid IN ( SELECT MAX(Gid) FROM 基本沟通表1 GROUP BY 基本沟通表1.Qid ) ) AS t2 ON 基本信息表1.id = t2.Qid WHERE 1 = 1 AND t2.求职状态 = '情况不明' 把基本信息表1.id 和t2.Qid,t2.求职状态都加索引,然后left join里面的select * 改成qid
select * from 基本信息表1 left join (select t3.* from 基本沟通表1 t3 inner join (select Max(Gid) from 基本沟通表1 group by 基本沟通表1.Qid) t4 on t3.gid=t4.gid and t3.qid=t4.qid) t2 on 基本信息表1.id =t2.Qid where 1=1 and t2.求职状态='情况不明'
select * from 基本信息表1 left join (select t3.* from 基本沟通表1 t3 inner join (select Max(Gid),QID from 基本沟通表1 group by 基本沟通表1.Qid) t4 on t3.gid=t4.gid and t3.qid=t4.qid) t2 on 基本信息表1.id =t2.Qid where 1=1 and t2.求职状态='情况不明'
select * from 基本信息表1 left join (select t3.* from 基本沟通表1 t3 inner join (select Max(Gid) as gid1,QID from 基本沟通表1 group by 基本沟通表1.Qid) t4 on t3.gid=t4.gid1 and t3.qid=t4.qid) t2 on 基本信息表1.id =t2.Qid where 1=1 and t2.求职状态='情况不明'
应该用inner join 试试我这句要多久 select * from 基本信息表1 a inner 基本沟通表1 b on a.id=b.qid and b.求职状态='情况不明' and not exists (select c.gid from 基本沟通表1 c on c.qid=b.qid and c.Gid>b.Gid)
加索引都是TableScan能快的了?
select * from 基本信息表1 a inner join 基本沟通表1 b on a.id=b.qid and not exists (select c.gid from 基本沟通表1 c where c.qid=b.qid and c.Gid>b.Gid) and b.求职状态='情况不明' and 人才来源='网络' 这句效率比较高
FROM 基本信息表1
LEFT JOIN ( SELECT *
FROM 基本沟通表1
WHERE Gid IN ( SELECT MAX(Gid)
FROM 基本沟通表1
GROUP BY 基本沟通表1.Qid )
) AS t2 ON 基本信息表1.id = t2.Qid
WHERE 1 = 1
AND t2.求职状态 = '情况不明'
把基本信息表1.id 和t2.Qid,t2.求职状态都加索引,然后left join里面的select * 改成qid
(select t3.* from 基本沟通表1 t3 inner join (select Max(Gid) from 基本沟通表1 group by 基本沟通表1.Qid) t4
on t3.gid=t4.gid and t3.qid=t4.qid) t2
on 基本信息表1.id =t2.Qid
where 1=1 and t2.求职状态='情况不明'
基本信息表 对应多个沟通记录,取得最近一次沟通记录,的基本信息,where 后面条件可以是基本信息表,也可以是基本沟通表
select * from 基本信息表1 left join
(select t3.* from 基本沟通表1 t3 inner join (select Max(Gid),QID from 基本沟通表1 group by 基本沟通表1.Qid) t4
on t3.gid=t4.gid and t3.qid=t4.qid) t2
on 基本信息表1.id =t2.Qid
where 1=1 and t2.求职状态='情况不明'
select * from 基本信息表1 left join
(select t3.* from 基本沟通表1 t3 inner join (select Max(Gid) as gid1,QID from 基本沟通表1 group by 基本沟通表1.Qid) t4
on t3.gid=t4.gid1 and t3.qid=t4.qid) t2
on 基本信息表1.id =t2.Qid
where 1=1 and t2.求职状态='情况不明'
没有为 't4' 的列 1 指定任何列。
消息 207,级别 16,状态 1,第 2 行
列名 'Gid' 无效。
试试我这句要多久 select * from 基本信息表1 a inner 基本沟通表1 b
on a.id=b.qid
and b.求职状态='情况不明'
and not exists (select c.gid from 基本沟通表1 c on c.qid=b.qid and c.Gid>b.Gid)
select * from 基本信息表1 a inner join 基本沟通表1 b on a.id=b.qid
and not exists (select c.gid from 基本沟通表1 c where c.qid=b.qid and c.Gid>b.Gid) and b.求职状态='情况不明' and 人才来源='网络'
这句效率比较高