php – 优化这个mysql查询
发布时间:2020-12-13 21:38:45 所属栏目:PHP教程 来源:网络整理
导读:有人可以优化这个 mysql查询 SELECT submittedform.*,inspectors.first_name,inspectors.last_name FROM ( SELECT `dinsp`,`departure`,`arrival`,'cabin' as type FROM cabinets UNION SELECT `dinsp`,'cockpit' as type FROM cockpits ORDER BY `date_of_i
有人可以优化这个
mysql查询
SELECT submittedform.*,inspectors.first_name,inspectors.last_name FROM ( SELECT `dinsp`,`departure`,`arrival`,'cabin' as type FROM cabinets UNION SELECT `dinsp`,'cockpit' as type FROM cockpits ORDER BY `date_of_inspection` ASC ) AS submittedform INNER JOIN inspectors ON inspectors.id = submittedform.dinsp 我不想依赖嵌套查询,或者在这种情况下是否正常?还建议我一个cakephp解决方案,但表格无法相关. 解决方法
你可以试试:
SELECT sf.`dinsp`,sf.`departure`,sf.`arrival`,sf.`type`,i.`first_name`,i.`last_name` FROM `inspectors` AS i INNER JOIN ( SELECT `dinsp`,`date_of_inspection`,'cabin' AS `type` FROM `cabinets` UNION ALL SELECT `dinsp`,'cockpit' AS `type` FROM `cockpits` ) AS sf ON sf.`dinsp` = i.`id` ORDER BY sf.`date_of_inspection` UNION ALL不会检查重复项.始终将ORDER BY子句放在外部查询中以确保正确排序. 最好避免使用UNION,因为它不允许查询优化器使用你在dinsp和date_of_inspection上可能有的任何索引.但这意味着要改变架构. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |