1. 程式人生 > >LEFT JOIN 與 RIGHT JOIN 的使用區別

LEFT JOIN 與 RIGHT JOIN 的使用區別

廢話不多,不深入寫原理,直接上例子:


--函式說明:
--DECLARE 宣告變數
--WHILE 迴圈
--INSERT 增加表資料
[email protected]@rowcount 返回SQL語句執行後受影響的行數
--CASE WHEN THEN ELSE END 判斷條件給予賦值

-------------構造測試資料 BEGIN------------------
 DECLARE @table1 TABLE ( id INT , NAME VARCHAR(20) , sex VARCHAR(2) )
 
 DECLARE @table2 TABLE ( id INT , NAME VARCHAR(20) , sex VARCHAR(2) )

 DECLARE @n INT
 SET @n = 1

 WHILE @n <= 5
    BEGIN
        INSERT  INTO @table1 ( id , NAME , sex  )
        VALUES  ( @n , '小' + CONVERT(VARCHAR(10), @n) + '君' ,
                 CASE (10 + @n)%2 WHEN 1 THEN '女' ELSE '男' END
                )
        INSERT  INTO @table2 ( id , NAME , sex  )
        VALUES  ( @n , '小' + CONVERT(VARCHAR(10), @n) + '君' ,
                 CASE (10 + @n)%2 WHEN 1 THEN '女' ELSE '男' END
                )
        SET @n = @n + @@rowcount
    END

 WHILE @n <= 10
    BEGIN
        INSERT  INTO @table2 ( id , NAME , sex  )
        VALUES  ( @n , '小' + CONVERT(VARCHAR(10), @n) + '君' ,
                 CASE (10 + @n)%2 WHEN 1 THEN '女' ELSE '男' END
                )
        SET @n = @n + @@rowcount
    END  
    
-------------構造測試資料 END------------------

--1、RIGHT JOIN 只查詢b表在a表中沒有的資料
 SELECT * FROM   @table1 a RIGHT JOIN @table2 b ON a.id = b.id WHERE  a.id IS NULL
 
--2、LEFT JOIN 只查詢a表和b表中相同的資料
 SELECT * FROM   @table1 a LEFT JOIN @table2 b ON a.id = b.id

--3、這中寫法與 LEFT JOIN 查詢的資料相同    
 SELECT * FROM   @table1 a ,@table2 b WHERE  a.id = b.id

--4、這中寫法查詢b表的全部資料,a表與b表關聯,a表中沒有的資料顯示為NULL
 SELECT * FROM   @table1 a RIGHT JOIN @table2 b ON a.id = b.id

相關推薦

Mysql中Left Join Right Join Inner Join Full Join區別

chinese ron 兩張 ansi 左連接 ima money key sel 看看Left Join 與Right Join 與 Inner Join 與 Full Join對表進行操作後得到的結果。 在數據庫中新建兩張表,並插入要測試的數據。 新建表:

LEFT JOIN RIGHT JOIN 的使用區別

廢話不多,不深入寫原理,直接上例子: --函式說明: --DECLARE 宣告變數 --WHILE 迴圈 --INSERT 增加表資料 [email protected]@rowcount 返回SQL語句執行後受影響的行數 --CASE WHEN THEN EL

LEFT JOINRIGHT JOIN學習筆記

work asi 學習 mage .com eba bubuko 技術分享 小結 --82 SELECT COUNT(*) FROM [tbiz_PuzzleBasic] SELECT A.BasicID,A.Name,A.Gender,B.WorkID,B

sql中left joinright joininner join區別

sql語句 mage 分享 app bubuko 3.1 from wid http 1、數據庫 1.1、作者表 1.2、圖書表 1.3、出版社表 2、left join   left join(左聯接) 返回包括左表中的所有記錄和右表中聯結字段相等的記錄。 2.

圖解LEFT JOINRIGHT JOINJOIN區別

如圖: T1表 ID NAME AGE 1 張三 11 2 李四 12 3 王五

left join on後面 加條件和where後面加條件的區別 inner join left joinright join之間的區別

上一篇對三個join的語句做了一個區別,如果連最基礎的都不清楚,那麼請先參考:inner join 與 left join 和right join之間的區別 碰巧在專案中遇到了一個sql,是left join和where的條件限制的區別,想了好半天,這裡做一下筆記,萬一以後忘記了方便檢視。 話不多說,直接

sql語句中left joinright join、inner join區別

select http img image ner -s style nbsp color left join(左聯接) 返回包括左表中的所有記錄和右表中聯結字段相等的記錄; right join(右聯接) 返回包括右表中的所有記錄和左表中聯結字段相等的記錄;inner j

sql之left joinright join、inner join區別

行數 觀察 返回 join 填充 顯示 字段 left join inner left join(左聯接) 返回包括左表中的所有記錄和右表中聯結字段相等的記錄 right join(右聯接) 返回包括右表中的所有記錄和左表中聯結字段相等的記錄inner join(等值連接)

sql中in和exist語句的區別?(補充了left joinright join)

有用 表數 from 部分匹配 exist 循環 targe 從表 exists in和exists(摘錄自百度)in 是把外表和內表作hash 連接,而exists是對外表作loop循環,每次loop循環再對內表進行查詢。如果兩個表中一個較小,一個是大表,則子查詢表大的用

mysql之left joinright join、inner join區別

www. http tle title mysq ner www class div left join(左聯接) 返回包括左表中的所有記錄和右表中聯結字段相等的記錄 right join(右聯接) 返回包括右表中的所有記錄和左表中聯結字段相等的記錄 inner jo

sql的left joinright join 、inner join之間的區別

所有 eight mark 等值連接 tro inner sql font style sql中left join 、right join 、inner join之間的區別    left join (左聯接) 返回包括左表中的所有記錄和右表中聯結字段相等的記錄 ;  ri

left joinright join、inner join、full join區別

tab 即使 記錄組 field pop 數據類型 nbsp 沒有 sel left join(左聯接) 返回包括左表中的所有記錄和右表中聯結字段相等的記錄 right join(右聯接) 返回包括右表中的所有記錄和左表中聯結字段相等的記錄 inner joi

left joinright join、inner join區別

left join(左聯接) 返回包括左表中的所有記錄和右表中聯結欄位相等的記錄 right join(右聯接) 返回包括右表中的所有記錄和左表中聯結欄位相等的記錄 inner join(等值連線) 只返回兩個表中聯結欄位相等的行 舉例如下: 表A記錄如下: aID   

MySQL語句中 LEFT JOIN 、INNER JOINRIGHT JOIN 區別

今天遇見一個吭,許是我沒有理解清楚三者之間的聯絡。 不多說,直接上程式碼: MySQL查詢語句: SELECT u.* FROM tb_active_user AS u LEFT JOIN tb_active_team AS t ON t.user_id = #{use

MySQL連線查詢(inner join,left joinright join區別

關係資料庫由多個相關表組成,這些表使用已知為外來鍵列的常用列連結在一起。 因此,從業務角度來看,每個表中的資料是不完整的。 例如,在示例資料庫(yiibaidb)中,使用orderNumber列連結的orders和orderdetails表。 orders和orderdetails表的 ER 圖如下所示

sql中left joinright join區別基礎舉例,僅供辨識

left join(左聯接)       ---返回左表中的所有記錄和右表中條件欄位相等的記錄。 right join(右聯接)     ---返回右表中的所有記錄和左表中聯結欄位相等的記錄 舉例說

簡述 left joinright join 以及inner join區別

left join(左聯接) 返回包括左表中的所有記錄和右表中聯結欄位相等的記錄  right join(右聯接) 返回包括右表中的所有記錄和左表中聯結欄位相等的記錄 inner join(等值連線) 只返回兩個表中聯結欄位相等的行

【轉】sql之left joinright join、inner join區別

left join(左聯接) 返回包括左表中的所有記錄和右表中聯結欄位相等的記錄  right join(右聯接) 返回包括右表中的所有記錄和左表中聯結欄位相等的記錄 inner join(等值連線) 只返回兩個表中聯結欄位相等的行 舉例如下:  -------------

left joinright join區別

這裡拿學生表和班級表舉例: 學生表: 班級表 SELECT * FROM `student`s LEFT JOIN `class` c on s.id = c.uid

sql之left joinright join、inner join區別以及適用場景

left join(左連線) 返回包括左表中的所有記錄和右表中連線欄位相等的記錄Table Aid name01 abc02 abTable Bidcnt013034Select A.id,A.name