天天看點

sqlserver leftjoin出現重複資料_資料分析-第五關-1125

第一部分:表的加法

  • 合并去重後的表:union
  • 合并保留重複行的表:union all
sqlserver leftjoin出現重複資料_資料分析-第五關-1125

文氏圖:加法 union

sqlserver leftjoin出現重複資料_資料分析-第五關-1125

第二部分:表的聯結

  • 交叉聯結-cross join on :笛卡爾積-表1 n行n列,表2 m行m列- 表1和表2 聯結成n+m行n*m列
  • 内聯結-inner join on :查找出同時存在兩張表中的資料。先取出符合條件的行,然後交叉聯結。
  • 外聯結:左聯結-left join 和右聯結- right join
    • 左聯結:以左邊的表為主表,先把左表全部取出,再取出右邊符合條件的行,最後交叉聯結。
    • 右聯結:以右邊的表為主表,先把右表全部取出,再取出左邊符合條件的行,最後交叉聯結。
  • 全聯結:full join: 傳回左表和右表中的所有行,若某行和另一個表有比對的行,則此行會合并,其他不比對的則傳回對應的行。
sqlserver leftjoin出現重複資料_資料分析-第五關-1125

内聯結-inner join

sqlserver leftjoin出現重複資料_資料分析-第五關-1125

左聯結-left join

sqlserver leftjoin出現重複資料_資料分析-第五關-1125

左聯結不包含公共部分

第三部分:聯結應用案例

sqlserver leftjoin出現重複資料_資料分析-第五關-1125

左聯結應用

sqlserver leftjoin出現重複資料_資料分析-第五關-1125
sqlserver leftjoin出現重複資料_資料分析-第五關-1125

第四部分:case表達式

case when <>ther<>---------------------1

when <>ther<>---------------------2

when <>ther<>

.................

else<>

end

滿足1 執行end, 若1 不滿足,會執行2,2滿足,執行end,2若不滿足,則以此類推,運作.......

sqlserver leftjoin出現重複資料_資料分析-第五關-1125

總結:

  • 以行為機關對表進行聯結-union(并集)intersect(交集)except(差集)
      • union -并集 union all--保留重複行--------------------------------增加記錄行數
      • intersect-交集-應用于兩張表,選取出它們當中的公共記錄-----------減少記錄行數
      • except-差集-A-B:選取A中除去AB交集部分------------------------------減少記錄行數

集合運算就是對滿足同一規則的記錄進行加減等四則運算,通過集合運算可以得到兩個表中記錄的集合或者公共記錄的集合,又或者其中某個表的記錄的集合。

集合運算注意事項:

    1. 集合運算符會除去重複的記錄
    2. 作為運算對象的記錄的列數必須相同
    3. 作為運算對象的記錄中列的類型必須一緻
    4. 可以使用任何select語句,但是order by子句隻能 在最後使用一次
  • 以列為機關對表進行聯結-inner join(内聯結),outer join(外聯結),cross join(交叉聯結)
    • inner join(内聯結)----選取同時存在兩張表中的資料
    • outer join(外聯結)----隻要資料存在某一張表中就能讀取出來,------可以得到固定行數的結果。分為左連接配接和右連接配接-區分主表
    • cross join(交叉聯結)----笛卡爾積,兩張表中行數的乘積。

進行聯結時需要在FROM子句中使用多張表;進行内連接配接時必須使用ON子句,并且書寫在from和where之間;使用聯結時select子句中的列需要按照<表的列名>.<别名>的格式進行書寫。

複習sql的運作順序:

from- where- group by- having- select- order by- limit

繼續閱讀