国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL筆記之連接查詢詳解

2020-01-18 23:45:04
字體:
來源:轉載
供稿:網友

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

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

參考表: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:連接查詢中使用最多的是內連接查詢,而外連接查詢使用頻率較低

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江山市| 桐城市| 辽中县| 舞钢市| 光泽县| 桐梓县| 梓潼县| 邛崃市| 台南市| 理塘县| 那坡县| 当涂县| 化隆| 竹溪县| 临汾市| 靖宇县| 六安市| 吴川市| 桐柏县| 若尔盖县| 邢台县| 敖汉旗| 明星| 武胜县| 玉门市| 湘阴县| 堆龙德庆县| 德昌县| 兴国县| 边坝县| 安达市| 汕尾市| 和硕县| 尚志市| 灵丘县| 长白| 都匀市| 芜湖县| 连平县| 水富县| 明星|