首页 > 数据库技术 > 详细

MySQL的执行顺序和Join

时间:2020-09-06 23:39:21      阅读:653      评论:0      收藏:0      [点我收藏+]

sql执行顺序

select

distinct <select_list> 

form table_left

<inner join><left join><rigth join> table_right  on  <join_condition>

where <where_condition>

group by <group_by_list>

having <having_condition>

order by <order_by_list>

limit <limit_number>

上面的执行过程

1.from table_left
2.on  <join_condition>
3.<inner join><left join><rigth join> table_right
4.where <where_condition>
5.group by <group_by_list>
6.having <having_condition>
7.select
8.distinct <select_list> 
9.order by <order_by_list>
10.limit <limit_number>

Join的七种理论

 技术分享图片

 

--MySQL Full Join的实现 因为MySQL不支持FULL JOIN,下面是替代方法.
SELECT * FROM TABLEA A LEFT JOIN TABLEB B ON A.Key= B.Key
UNION
SELECT * FROM TABLEA A RIGHT JOIN TABLEB B ON A.Key= B.key
--这里因为要联合的缘故,不能考虑到小表驱动大表的情况。只能用right join。要保证查询出来的数字要一致。A的独有+B的独有
SELECT * FROM TABLEA A LEFT JOIN TABLEB B ON A.Key = B.Key WHERE B.Key IS NULL
UNION
SELECT * FROM TABLEA A RIGHT JOIN TABLEB B ON A.Key= B.Key WHERE A.Key IS NULL;

 

MySQL的执行顺序和Join

原文:https://www.cnblogs.com/-zzc/p/13620224.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!