MySQL筆記之連接查詢詳解_MySQL教程

      編輯Tag賺U幣

      推薦:MySQL筆記之函數查詢的使用
      本篇文章介紹了mysql中函數查詢的使用。需要的朋友參考下

      連接查詢是將兩個或兩個以上的表按某個條件連接起來,從中選取需要的數據

      當不同的表中存在表示相同意義的字段時,可以通過該字段來連接這幾張表

      參考表:employee

      參考表:department

      可以看到,上面兩張表都有同一個字段d_id

      當兩張表含有相同意義的字段(可以不同名)時就可以進行連接查詢

      內連接查詢
      復制代碼 代碼如下:www.wf0088.com

      mysql> SELECT num, name, employee.d_id, sex, d_name, function
      -> FROM employee, department
      -> WHERE employee.d_id=department.d_id;
      +------+--------+------+------+-----------+--------------+
      | num | name | d_id | sex | d_name | function |
      +------+--------+------+------+-----------+--------------+
      | 1 | 張三 | 1001 | 男 | 科技部 | 研發產品 |
      | 2 | 李四 | 1001 | 女 | 科技部 | 研發產品 |
      | 3 | 王五 | 1002 | 男 | 生產部 | 生產產品 |
      +------+--------+------+------+-----------+--------------+
      rows in set (0.00 sec)

      內連接查詢只會查詢完全匹配的結果,此處使用d_id字段進行連接

      下面的表中也同樣使用這一字段


      外連接查詢

      外查詢也需要通過指定字段來進行連接,當該字段取值相等時,可以查詢出該記錄

      而且,該字段取值不相等的記錄也可以查詢出來

      外連接查詢包括左連接查詢和右連接查詢


      左連接查詢

      復制代碼 代碼如下:www.wf0088.com

      mysql> SELECT num, name, employee.d_id, d_name, function
      -> FROM employee LEFT JOIN department
      -> ON employee.d_id=department.d_id;
      +------+--------+------+-----------+--------------+
      | num | name | d_id | d_name | function |
      +------+--------+------+-----------+--------------+
      | 1 | 張三 | 1001 | 科技部 | 研發產品 |
      | 2 | 李四 | 1001 | 科技部 | 研發產品 |
      | 3 | 王五 | 1002 | 生產部 | 生產產品 |
      | 4 | Aric | 1004 | NULL | NULL |
      +------+--------+------+-----------+--------------+
      rows in set (0.00 sec)

      此處不僅查詢出了兩表中d_id字段相匹配的信息

       

      并且通過LEFT JOIN查詢出了employee表中所有指定字段的信息

      由于Aric沒有對應d_name和function信息,所以顯示null


      右連接查詢

      復制代碼 代碼如下:www.wf0088.com

      mysql> SELECT num, name, employee.d_id, d_name, function
      -> FROM employee RIGHT JOIN department
      -> ON employee.d_id=department.d_id;
      +------+--------+------+-----------+--------------+
      | num | name | d_id | d_name | function |
      +------+--------+------+-----------+--------------+
      | 1 | 張三 | 1001 | 科技部 | 研發產品 |
      | 2 | 李四 | 1001 | 科技部 | 研發產品 |
      | 3 | 王五 | 1002 | 生產部 | 生產產品 |
      | NULL | NULL | NULL | 銷售部 | 策劃銷售 |
      +------+--------+------+-----------+--------------+
      rows in set (0.00 sec)

      與上面相反,這里查詢出了匹配的信息和department表中的所有指定字段的信息

       

      但是由于employee表中部分字段沒有對應,因此最后一行記錄有顯示NULL


      復合條件連接查詢

      復制代碼 代碼如下:www.wf0088.com

      mysql> SELECT num, name, employee.d_id, sex, age, address
      -> FROM employee, department
      -> WHERE employee.d_id=department.d_id
      -> AND age>=25;
      +------+--------+------+------+------+-------------+
      | num | name | d_id | sex | age | address |
      +------+--------+------+------+------+-------------+
      | 1 | 張三 | 1001 | 男 | 26 | 3號樓5層 |
      | 3 | 王五 | 1002 | 男 | 25 | 5號樓1層 |
      +------+--------+------+------+------+-------------+
      rows in set (0.00 sec)

      復合條件連接查詢是在進行連接查詢的時候加入限制條件,此處的age>=25便是

       

      通常情況下,限制條件越多,查詢越精確,限制條件可用AND累加

      此外,還可以用復合條件進行ORDER BY 排序

      tips連接查詢中使用最多的是內連接查詢,而外連接查詢使用頻率較低

      分享:MySQL筆記之基本查詢的應用詳解
      本篇文章介紹了,在mysql中基本查詢的應用詳解。需要的朋友參考下

      來源:模板無憂//所屬分類:MySQL教程/更新時間:2013-05-04
      相關MySQL教程