Mysql關聯(lián)查詢的幾種實現(xiàn)方式
在關系型數(shù)據(jù)庫中,要進行多表查詢,一般都會使用join連接。
join連接的本質(zhì)其實類似與集合的交并操作,Mysql實現(xiàn)關聯(lián)查詢常見的幾種方式如下;
本次測試表結(jié)構和數(shù)據(jù):
- A表

- B表

1、左連接
概念說明:
左連接將左表A作為主表,右表B作為從表,左表作為外層循環(huán),在右表中進行匹配,如果左表的記錄在右表中沒有匹配,則將該左表記錄的右表項補空值;

語法&測試:
語法關鍵字為 LEFT JOIN,影響行數(shù) 4 行;

2、右連接
概念說明:
右連接將右表B作為主表,左表A作為從表,右表作為外層循環(huán),在左表中進行匹配,如果右表的記錄在左表中沒有匹配,則將該右表記錄的左表項補空值;

語法&測試:
語法關鍵字為 RIGHT JOIN,影響行數(shù) 4 行;

3、內(nèi)連接
概念說明:
內(nèi)連接將左表A和右表B對于條件相匹配的項進行組合,在結(jié)果中只會出現(xiàn)同時在左表和右表出現(xiàn)的項;

語法&測試:
語法關鍵字為 INNER JOIN 或 JOIN(JOIN等價于INNER JOIN),影響行數(shù) 3 行;

4、全連接
概念說明:
全外連接將左表A和右表B的所有記錄進行匹配,如果在另外表項中不存在記錄,則補空值;

語法&測試:
語法關鍵字為 UNION 用來組合左連接和右連接,影響行數(shù) 5 行;

5、左外連接
概念說明:
左外連接選擇將左表A作為主表,右表B作為從表,循環(huán)遍歷右表,查找與條件滿足的項,如果在右表中沒有匹配的項,則補空值,并且在結(jié)果集中選擇只在左表中存在的數(shù)據(jù);

語法&測試:
左表A獨有的數(shù)據(jù),影響行數(shù) 1 行;

6、右外連接
概念說明:
右外連接選擇將右表作為主表,左表作為從表,循環(huán)遍歷左表,查找與join條件滿足的項,如果在左表中沒有匹配的項,則補空值,并且在結(jié)果集中選擇只在右表中存在的數(shù)據(jù);

語法&測試:
右表B獨有的數(shù)據(jù),影響行數(shù) 1 行;

7、全外連接
概念說明:
全外連接將全連接中左右表相交的部分排除;

語法&測試:
左表A和右表B獨有的數(shù)據(jù),影響行數(shù) 2 行;

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
MySQL query_cache_type 參數(shù)與使用詳解
這篇文章主要介紹了MySQL query_cache_type參數(shù)介紹,需要的朋友可以參考下2021-07-07

