SQL-關聯查詢


T_A A表 T_B B標,id為表與表相關聯的字段`
創建相關表結構

CREATE TABLE Table_B( id INT(2), serNum VARCHAR(10) ); 
CREATE TABLE Table_A( id INT(2), serNum VARCHAR(10) ); 
INSERT INTO table_a (id, serNum)
 VALUES (1,'A000101'),(2,'A000102'),(3,'A000103'),(5,'A000104'),(8,'A000105'),(4,'A000106');
INSERT INTO table_b (id, serNum) 
 VALUES (1,'B000201'),(2,'B000202'),(3,'B000203'),(6,'B000204'),(7,'B000205'),(9,'B000206');


Table_A
id serNum


 1  A000100  
 2  A000102  
 3  A000103  
 5  A000104  
 8  A000105  
 4  A000106  

Table_B
id serNum


 1  B000201  
 2  B000202  
 3  B000203  
 6  B000204  
 7  B000205  
 9  B000206  

1. inner join 內連接查詢

SELECT a.*,b.*
FROM table_a a
INNER JOIN table_b b
ON a.id=b.id

查詢結果:
id serNum id serNum


 1  A000100       1  B000201  
 2  A000102       2  B000202  
 3  A000103       3  B000203  

2. left join 左關聯查詢

以左表作為基礎表去關聯右表,查詢的結果為左表的子集

SELECT a.*,b.*
FROM table_a a
LEFT JOIN table_b b
ON a.id=b.id

查詢結果:
id serNum id serNum


 1  A000100       1  B000201  
 2  A000102       2  B000202  
 3  A000103       3  B000203  
 5  A000104  (NULL)  (NULL)   
 8  A000105  (NULL)  (NULL)   
 4  A000106  (NULL)  (NULL)  

3.right join 右關聯查詢

以右表作為基礎表去關聯左表,查詢的結果為右表的子集

SELECT a.*,b.*
FROM table_a a
RIGHT JOIN table_b b
ON a.id=b.id

查詢結果:
id serNum id serNum


 1  A000100       1  B000201  
 2  A000102       2  B000202  
 3  A000103       3  B000203  

(NULL) (NULL) 6 B000204
(NULL) (NULL) 7 B000205
(NULL) (NULL) 9 B000206

4.左連接-內連接

取左表的部分集合,但又不存在右表中

SELECT a.*,b.*
FROM table_a a
LEFT JOIN table_b b
ON a.id=b.id
WHERE b.id IS NULL

查詢結果:
id serNum id serNum


 5  A000104  (NULL)  (NULL)  
 8  A000105  (NULL)  (NULL)  
 4  A000106  (NULL)  (NULL)

5. 右連接-內連接

取有表的部分數據,但又不存在左表中

SELECT a.*,b.*
FROM table_a a
RIGHT JOIN table_b b
ON a.id=b.id
WHERE a.id IS NULL

查詢結果:
id serNum id serNum


(NULL) (NULL) 6 B000204
(NULL) (NULL) 7 B000205
(NULL) (NULL) 9 B000206


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM