mysql中left join right join inner join用法分析

 mysql數據庫中的關聯查詢,基本都會用到left join,right join,inner join等查詢方式,今天來講說這三種用法的區別mysql

1.建立表test1,test2,插入測試數據sql

#建立表sql語句#
CREATE TABLE test1(
    id int(10) AUTO_INCREMENT PRIMARY KEY, 
    name char(20) 
 ) 
CREATE TABLE test2(
    bid int(10) AUTO_INCREMENT PRIMARY KEY, 
    mobile char(20) 
 ) 
#插入測試數據sql語句#
INSERT INTO test1 VALUES ( 1, '小明' ) , ( 2, '小強' ) , ( 3, '小王' ) , ( 4, '小張' ) , ( 5, '小東' );
INSERT INTO test2 VALUES ( 1, '13625878968' ) , ( 2, '13582687245' ) , ( 3, '13802598746' ) , ( 4, '15025893698' ) , ( 8, '13582584789' );

2.測試left join,right join,inner join用法 數據庫

#left join(左鏈接)#
select a.*,b.* from test1 as a left join test2 as b on a.id=b.bid
結果如圖
  
影響行數爲5行,左表(test1)的記錄將會所有表示出來,而右表(test2)只會顯示符合搜索條件的記錄(例子中爲: test1.id = test2.bid). 
test2表記錄不足的地方均爲NULL
#right join(右鏈接)#
select a.*,b.* from test1 as a right join test2 as b on a.id=b.bid
結果如圖
  
影響行數爲5行,與left join的結果恰好相反,此次是以右表(test2)爲基礎的,test1表不足的地方用NULL填充
#inner join(內鏈接)#
select a.*,b.* from test1 as a inner join test2 as b on a.id=b.bid
結果如圖
  
影響行數爲4行,這裏只顯示出了 test1.id = test2.bid的記錄.這說明inner join並不以誰爲基礎,它只顯示符合條件的記錄,精確匹配
相關文章
相關標籤/搜索