56,681
社区成员
发帖
与我相关
我的任务
分享
SELECT COUNT(*) FROM(
SELECT T1.id,T1.eid,T1.name, t.num FROM T1
LEFT JOIN (SELECT eid, COUNT(*) AS num FROM T2 GROUP BY eid) t ON t.eid = T1.eid
WHERE t.num > 0
) t
DROP VIEW IF EXISTS v_work_statistical_psm_;
CREATE
VIEW v_work_statistical_psm_ AS
SELECT eid AS eid, COUNT(*) AS num FROM t_cim_powersystemresource WHERE eid IS NOT NULL GROUP BY eid ORDER BY NULL;
--这里查询要2秒多
SELECT COUNT(*) FROM (
SELECT p.record_id, NULL,
(SELECT num FROM v_work_statistical_psm_ WHERE eid = p.eid LIMIT 1) AS equipmentNumber
FROM t_work_patrol_plan p
UNION ALL
SELECT plm.record_id, plm.id,
(SELECT num FROM v_work_statistical_psm_ WHERE eid = plm.eid LIMIT 1) AS equipmentNumber
FROM t_work_patrollogmaster plm
WHERE plm.record_id = -1 OR plm.record_id IS NULL
) t
select count(*) from T1 where exists(select * from T2 where eid=T1.eid);
SELECT T1.eid,COUNT(T2.eid)AS num FROM T1
LEFT JOIN T2 ON T1.eid = T2.eid
GROUP BY T2.eid
WHERE num > 0
两个eid 都加上索引