MySQL中join的7種方法


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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM