join查询的7中方法
手写顺序:
SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <having_condition> ORDER BY <order_by_condition> LIMIT <limit_number>
MySQL执行顺序
FROM <left_table> ON <join_condition> <join_type> JOIN <right_table> WHERE <where_condition> GROUP BY <group_by_list> HAVING <having_condition> DISTINCT <select_list> ORDER BY <order_by_condition> LIMIT <limit_number>
join连接方式:
内连接:
SELECT <select_list> FROM TableA A INNER JOIN TableB B ON A.Key = B.Key
左连接:
SELECT <select_list> FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key
右连接:
SELECT <select_list> FROM TableA A RIGHT JOIN TableB B ON A.Key = B.Key
只有A
SELECT <select_list> FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key WHERE B.Key IS NULL
只有B
SELECT <select_list> FROM TableA A RIGHT JOIN TableB B ON A.Key = B.Key WHERE A.Key IS NULL
全连接
# MySQL没有FULL OUTER语法。 SELECT <select_list> FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key union SELECT <select_list> FROM TableA A RIGHT JOIN TableB B ON A.Key = B.Key;
A,B各自独有:
?
# MySQL没有FULL OUTER语法。 SELECT <select_list> FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key WHERE B.Key IS NULL union SELECT <select_list> FROM TableA A RIGHT JOIN TableB B ON A.Key = B.Key WHERE A.Key IS NULL;
原文:https://www.cnblogs.com/xujunkai/p/12491195.html
如果您也喜欢它,动动您的小指点个赞吧