设计网站如何打造收费,网站文章页301重定向怎么做,阿里指数怎么没有了,怎么用apache做网站使用连接(JOIN)来代替子查询(Sub-Queries)MySQL从4.1开始支持SQL的子查询。这个技术可以使用SELECT语句来创建一个单列的查询结果#xff0c;然后把这个结果作为过滤条件用在另一个查询中。例如#xff0c;我们要将客户基本信息表中没有任何订单的客户删除掉#xff0c;就可…使用连接(JOIN)来代替子查询(Sub-Queries)MySQL从4.1开始支持SQL的子查询。这个技术可以使用SELECT语句来创建一个单列的查询结果然后把这个结果作为过滤条件用在另一个查询中。例如我们要将客户基本信息表中没有任何订单的客户删除掉就可以利用子查询先从销售信息表中将所有发出订单的客户ID取出来然后将结果传递给主查询如下所示DELETE FROM customerinfoWHERE CustomerID NOT in (SELECT CustomerID FROM salesinfo )使用子查询可以一次性的完成很多逻辑上需要多个步骤才能完成的SQL操作同时也可以避免事务或者表锁死并且写起来也很容易。但是有些情况下子查询可以被更有效率的连接(JOIN).. 替代。例如假设我们要将所有没有订单记录的用户取出来可以用下面这个查询完成SELECT * FROM customerinfoWHERE CustomerID NOT in (SELECT CustomerID FROM salesinfo )如果使用连接(JOIN).. 来完成这个查询工作速度将会快很多。尤其是当salesinfo表中对CustomerID建有索引的话性能将会更好查询如下SELECT * FROM customerinfoLEFT JOIN salesinfoON customerinfo.CustomerIDsalesinfo.CustomerIDWHERE salesinfo.CustomerID IS NULL连接(JOIN).. 之所以更有效率一些是因为 MySQL不需要在内存中创建临时表来完成这个逻辑上的需要两个步骤的查询工作总结本文关于MySQL优化之使用连接(join)代替子查询的内容就到这里仅供参考。如有不足之处请指出。欢迎大家交流讨论。感谢朋友们对本站的支持。本文标题: MySQL优化之使用连接(join)代替子查询本文地址: http://www.cppcns.com/shujuku/mysql/206676.html