sql之left join、right join、inner join的區別以及適用場景
left join(左連線) 返回包括左表中的所有記錄和右表中連線欄位相等的記錄
Table A
id name
01 abc
02 ab
Table B
idcnt
013
034
Select A.id,A.name,B.cnt A leftjoin B on A.id=B.id
結果
id name cnt
01 abc3
02 abnull
特別地,也有記錄條數大於左邊表的時候,例如:
Table A
id name
01 abc
02 ab
Table B
idcnt
013
015
034
Select A.id,A.name,B.cnt A left join B on A.id=B.id
結果
id name cnt
01 abc3
01 abc5
02 abnull
結果是3條記錄,比左連線左邊的表table A的記錄條數2還要多。
連線欄位即兩表的id欄位
right join(右連線) 返回包括右表中的所有記錄和左表中連線欄位相等的記錄
Table B
idcnt
013
034
Table A
id name
01 abc
02 ab
Select A.id,A.name,B.cnt B right join A on A.id=B.id
結果
id name cnt
01 abc3
02 abnull
左連線和右連線很相似,只是左右表位置的不同罷了。適用場景,如:員工表中有個欄位是詳細地址資訊表的主鍵id,這兩個表相關聯時,就可以用左連線或右連線,因為在詳細地址資訊表中找不到某員工的地址資訊也要將員工這條記錄顯示出來,相應的詳細地址資訊欄位為空即可,而不能因為地址沒有存在資料庫裡,這個員工就沒了(簡單理解成不重要的資訊不影響整條記錄的顯示)
inner join(等值連線、內連線) 只返回兩個表中連線欄位相等的行
Table A
id name
01 abc
02 ab
Table B
idcnt
013
034
Select A.id,A.name,B.cnt A inner join B on A.id=B.id結果
id name cnt
01 abc3內連線的適用場景:相連線的兩個表中必須在某個欄位上有相等的值才可以將整條記錄顯示出來,如一條服務單記錄在了兩個表中,A表中記錄了該服務單的服務時間、坐席名稱和錄音地址等基本資訊,B表中記錄了該服務單的業務詳情,如保險單號,車牌號,保單日期等,當顯示該服務單時,要將A表與B表做內連線,因為少這兩表任何一個表,該服務單都不算完整,缺失的資訊會使業務上沒法繼續。總結:可以將可使用左連線和右連線的兩個表理解成其中一個表的資訊明顯比另外一個表的資訊重要得多;使用內連線的兩個表理解成重要程度區別不太大的兩個表。
注意:看“重要”與否的標準要對於查詢結果的顯示而言。
相關推薦
sql之left join、right join、inner join的區別以及適用場景
left join(左連線) 返回包括左表中的所有記錄和右表中連線欄位相等的記錄Table Aid name01 abc02 abTable Bidcnt013034Select A.id,A.name
js中的call()方法、apply()和bind()方法的區別以及使用場景
在js中,所有的函式再被呼叫的時候都會預設傳入兩個引數,一個是this,還有一個是arguments。在預設情況下this都是指當前的呼叫函式的物件。但是有時候我們需要改變this的指向,也就是說使函式可以被其他物件來呼叫,那麼我們應該怎樣做呢?這時候我們就可以使用call,apply和bi
sql之left join、right join、inner join的區別
行數 觀察 返回 join 填充 顯示 字段 left join inner left join(左聯接) 返回包括左表中的所有記錄和右表中聯結字段相等的記錄 right join(右聯接) 返回包括右表中的所有記錄和左表中聯結字段相等的記錄inner join(等值連接)
【轉】sql之left join、right join、inner join的區別
left join(左聯接) 返回包括左表中的所有記錄和右表中聯結欄位相等的記錄 right join(右聯接) 返回包括右表中的所有記錄和左表中聯結欄位相等的記錄 inner join(等值連線) 只返回兩個表中聯結欄位相等的行 舉例如下: -------------
Sql之left join(左關聯)、right join(右關聯)、inner join(自關聯)的區別
首先來個圖例: left join(左聯接) 返回包括左表中的所有記錄和右表中聯結欄位相等的記錄 right join(右聯接) 返回包括右表中的所有記錄和左表中聯結欄位相等的記錄 inner join(等值連線) 只返回兩個表中聯結欄位相等的行 舉例如下:
Linq to sql之left join運用示例
creat extent ext mod .get then rom emp ase 示例一: var l= from a in cardsBll.GetCards() join b in usersBll.GetAllUsers() on a.Car
sql之left join 後有多個條件時應該怎麼寫才能正確的顯示出想要的結果呢?
left join 後有多個條件時應該怎麼寫才能正確的顯示出想要的結果呢?來看下面兩個sql例子。Table aId name 01 A 02 B 04 C Table bId size 01
Oracle中PL/SQL之常量和變數的定義、遊標(游標)的使用
PL/SQL常量和變數的定義 變數的資料型別:char、varchar2、date、number、boolean、long 常量定義:isshow boolean :=true; 說明變數:說明變數名、資料型別和長度後用分號結束說明語句。例:e_name varchar2(20);
Socket請求和Http請求的各自特點、區別及適用場景 (轉)
網絡協議 strong 將不 控制 應用 如何 傳輸安全 socket實現 訪問協議 http://blog.csdn.net/hexinli/article/details/50500316 Socket實現服務器與客戶端之間的物理連接,並進行數據傳輸。主要有TCP/U
消息隊列服務Kafka揭秘:痛點、優勢以及適用場景
cli 是什麽 占滿 事務 不同之處 消息系統 監控體系 流動 系列 摘要: 消息隊列Kafka是一個分布式的、高吞吐量、高可擴展性消息隊列服務,廣泛用於日誌收集、監控數據聚合、流式數據處理、在線和離線分析等,是大數據生態中不可或缺的產品之一,阿裏雲提供全托管服務,用戶無需
list與Set、Map區別及適用場景
適合 線程 可重復 set、map equals 註意 位置 tor span 1、List,Set都是繼承自Collection接口,Map則不是 2、List特點: 元素有放入順序,元素可重復 ,Set特點:元素無放入順序,元素不可重復,重復元素會覆蓋掉,(註意:元
11.1 js中級,資料型別、資料儲存方式、作用域記憶體空間的區別以及例識別。
一. 基本資料型別和引用資料型別的區別。 1.基本資料型別:基本資料型別就是簡單的操作值。 2.引用資料型別:就是把引用的地址賦給變數。 堆記憶體: 就是存放程式碼塊的,存放形式有兩種 1)物件以鍵值對的形式存放 2)引用資料型別的賦值,是把引用
畫素、英寸,Dpi 三者的區別以及關係
Dpi(每平方英寸畫素數目):影象細節程度的度量 Dpi 代表每平方英寸上所含“點”的數目,它決定了一副影象在細節上到底有多細(儘管並不依賴於你的視覺感受)。但是,什麼是“點”? “點”是一個模糊不清的術語。點可以指的是畫素、畫筆的一“點”或者是一個油墨印跡。 當你置身
C++中過載、覆蓋和隱藏的區別,以及適用場景
一、過載、覆蓋和隱藏的區別 二、適用場景 1、過載: 適用於不同的資料型別都需要使用到的功能函式。以資料相加的函式為例,可以在同一個檔案內提供以下的過載函式以支援同樣的功能: int add(int, int);/*2個整數相加*/ int add(int, int, int);/*3個整數相
希爾排序的Java實現、效能分析以及適用場景
1.希爾排序的Java實現: 程式碼如下: package com.zm.testSort; /** *希爾排序的最優化 * @author zm */ public class ShellS
SPSS:T檢驗、方差分析、非參檢驗、卡方檢驗的使用要求和適用場景
一、T檢驗 1.1 樣本均值比較T檢驗的使用前提 正態性;(單樣本、獨立樣本、配對樣本T檢驗都需要) 連續變數;(單樣本、獨立樣本、配對樣本T檢驗都需要) 獨立性;(獨立樣本T檢驗要求) 方差齊性;(獨立樣本T檢驗要求) 1.2 樣本均值比較T
mysqli、pdo_mysql和mysql之間的區別以及選擇
這裡對在PHP應用開發過程中需要和Mysql資料庫互動時可用的選擇進行一個簡單介紹。 什麼是API? 一個應用程式介面(Application Programming Interface的縮寫),定義了類,方法,函式,變數等等一切 你的應用程式中為了完成特定任務而需要
java 常用集合list與Set、Map區別及適用場景總結
轉載請備註出自於:http://blog.csdn.net/qq_22118507/article/details/51576319 list與Set、Map區別及適用場景 1、List,Set都是繼承自Collection介面,Map則不是 2
在Google Play 釋出內部Beta版、開放Beta版有什麼區別以及怎樣與正式版共存
Google Play 裡的 APP 地址都是形如 https://play.google.com/store/apps/details?id=com.speedyplayer.player 這樣的
Nested Loops Join(巢狀連線) ,優化inner join的查詢速度
說明:最近找到了一個不錯的國外的部落格http://blogs.msdn.com/b/craigfr/,博主是Sql Server的開發人員,寫了很多Sql Server的內部原理性的文章,覺得非常有收穫。所以試著把他翻譯成中文,因為本人的英語和技術水平有限,難免會有錯誤,還請各位看官批評指教。 Nest