MySQL學習筆記9:串連查詢

來源:互聯網
上載者:User

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

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

參考表: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 | 男   | 生產部    | 生產產品     |+------+--------+------+------+-----------+--------------+3 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         |+------+--------+------+-----------+--------------+4 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 | 銷售部    | 策劃銷售     |+------+--------+------+-----------+--------------+4 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層    |+------+--------+------+------+------+-------------+2 rows in set (0.00 sec)

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

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

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

 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.