首页 > 代码库 > 子查询优化成join关联查询时要注意一对多关系
子查询优化成join关联查询时要注意一对多关系
mysql> select * from t where t.id in (select t1.tid from t1);+------+| id |+------+| 1 |+------+1 row in set (0.00 sec)mysql> select t.id from t join t1 on t.id=t1.tid;+------+| id |+------+| 1 || 1 |+------+2 rows in set (0.00 sec)mysql> select distinct t.id from t join t1 on t.id=t1.tid;+------+| id |+------+| 1 |+------+1 row in set (0.00 sec)
这个例子中,t表中只有一行数据1,t1表中有两行1
子查询可以查到一行数据,而不加distinct的join查询出来两条数据,为了避免这种情况,就需要注意使用distinct去重
子查询优化成join关联查询时要注意一对多关系
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。