程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL筆記之銜接查詢詳解

MySQL筆記之銜接查詢詳解

編輯:MySQL綜合教程

MySQL筆記之銜接查詢詳解。本站提示廣大學習愛好者:(MySQL筆記之銜接查詢詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL筆記之銜接查詢詳解正文


銜接查詢是將兩個或兩個以上的表按某個前提銜接起來,從當選取須要的數據

當分歧的表中存在表現雷同意義的字段時,可以經由過程該字段來銜接這幾張表

參考表:employee

參考表:department

 

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

當兩張表含有雷同意義的字段(可以分歧名)時便可以停止銜接查詢

內銜接查詢

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字段停止銜接

上面的表中也異樣應用這一字段


外銜接查詢

外查詢也須要經由過程指定字段來停止銜接,當該字段取值相等時,可以查詢出該記載

並且,該字段取值不相等的記載也能夠查詢出來

外銜接查詢包含左銜接查詢和右銜接查詢


左銜接查詢

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


右銜接查詢

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


復合前提銜接查詢

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:銜接查詢中應用最多的是內銜接查詢,而外銜接查詢應用頻率較低

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved