mysql – 使用多个EXIST进行查询
发布时间:2020-09-25 06:47:56 所属栏目:MySql 来源:互联网
导读:我有一个房间和设备的数据库.我想查询数据库并返回一个房间列表,例如电视,收音机,坐着和冰箱(eq1,eq2,eq3,....,eqN).我有以下SELECT语句:select * from rooms r where exists (select id from equipments where eq_id=eq1 and room_id=r.id)
我有一个房间和设备的数据库.我想查询数据库并返回一个房间列表,例如电视,收音机,坐着和冰箱(eq1,eq2,eq3,….,eqN). 我有以下SELECT语句:
有没有什么方法可以优化或缩短它? 最佳答案 缩短你可以
编辑 所以你应该考虑更快的事情: >一次通过与房间相关的所有记录(一个相关的子查询)或 这取决于你的数据的统计数据(我认为如果大多数房间里没有所有需要的设备,那么你的初始版本应该更快,如果大多数房间都有所有设备,那么建议的版本可能表现更好;此外,如果EXISTS版本更快,请首先尝试最有可能失败的查询,即首先检查最稀有的设备) 您也可以尝试使用GROUP BY的版本
(以上SQL未经测试) (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- Mysql入门在阿里云的CentOS环境中安装配置MySQL的
- Mysql入门MySQL Proxy的安装及基本命令使用教程
- 在Phpmyadmin中更改Mysql Server的端口
- MYSQL数据库Mysql help命令(帮助信息)中文注解
- 使用Smart Mobile Studio与mySQL数据库进行交互
- mysql – 选择distinct count(id)vs select coun
- mysql – 最大SQL连接表数限制是否适用于整个查询
- MYSQL教程MySQL性能优化之Open_Table配置参数的合
- mysql – 数据库中扩展前的增量文件名
- mysql – SQL UPDATE或DELETE如果重复
热点阅读