SQLl中的left join、right join、inner join詳解

left join(左聯接) 返回包括左表中的所有記錄和右表中聯結字段相等的記錄

right join(右聯接) 返回包括右表中的所有記錄和左表中聯結字段相等的記錄

inner join(等值連接) 只返回兩個表中聯結字段相等的行

舉例如下:

--------------------------------------------

表A記錄如下:

aID     aNum

1     a20050111

2     a20050112

3     a20050113

4     a20050114

5     a20050115

表B記錄如下:

bID     bName

1     2006032401

2     2006032402

3     2006032403

4     2006032404

8     2006032408

--------------------------------------------

1.left join

sql語句如下:

select * from A

left join B

on A.aID = B.bID

結果如下:

aID     aNum     bID     bName

1     a20050111    1     2006032401

2     a20050112    2     2006032402

3     a20050113    3     2006032403

4     a20050114    4     2006032404

5     a20050115    NULL     NULL

(所影響的行數為 5 行)

結果說明:

left join是以A表的記錄為基礎的,A可以看成左表,B可以看成右表,left join是以左表為準的.

換句話說,左表(A)的記錄將會全部表示出來,而右表(B)只會顯示符合搜索條件的記錄(例子中為: A.aID = B.bID).

B表記錄不足的地方均為NULL.

--------------------------------------------

2.right join

sql語句如下:

select * from A

right join B

on A.aID = B.bID

結果如下:

aID     aNum     bID     bName

1     a20050111    1     2006032401

2     a20050112    2     2006032402

3     a20050113    3     2006032403

4     a20050114    4     2006032404

NULL     NULL     8     2006032408

(所影響的行數為 5 行)

結果說明:

仔細觀察一下,就會發現,和left join的結果剛好相反,這次是以右表(B)為基礎的,A表不足的地方用NULL填充.

--------------------------------------------

3.inner join

sql語句如下:

select * from A

innerjoin B

on A.aID = B.bID

結果如下:

aID     aNum     bID     bName

1     a20050111    1     2006032401

2     a20050112    2     2006032402

3     a20050113    3     2006032403

4     a20050114    4     2006032404

結果說明:

很明顯,這里只顯示出了 A.aID = B.bID的記錄.這說明inner join并不以誰為基礎,它只顯示符合條件的記錄.

--------------------------------------------

注:

LEFT JOIN操作用于在任何的 FROM 子句中,組合來源表的記錄。使用 LEFT JOIN 運算來創建一個左邊外部聯接。左邊外部聯接將包含了從第一個(左邊)開始的兩個表中的全部記錄,即使在第二個(右邊)表中并沒有相符值的記錄。

語法:FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2

說明:table1, table2參數用于指定要將記錄組合的表的名稱。

field1, field2參數指定被聯接的字段的名稱。且這些字段必須有相同的數據類型及包含相同類型的數據,但它們不需要有相同的名稱。

compopr參數指定關系比較運算符:"=", "<", ">", "<=", ">=" 或 "<>"。

如果在INNER JOIN操作中要聯接包含Memo 數據類型或 OLE Object 數據類型數據的字段,將會發生錯誤.

歡迎關注我的公眾號(同步更新文章):DoNet技術分享平臺

閱讀原文

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272750.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272750.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272750.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

afudos備份bios不動_bios刷壞后的兩種解決方法

通常主板新的BIOS可以修正舊版中BIOS的一些BUG&#xff0c;糾正對某些硬件和軟件的兼容問題&#xff0c;添加新硬件的支持等等&#xff0c;所以有時我們需要刷新BIOS。但刷新主板BIOS實際上是存在一定風險的&#xff0c;雖然現在各主板廠商都推出了在Windows下刷新BIOS的軟件&a…

光學基礎知識:白光、顏色混合、RGB、色彩空間

1665年&#xff0c;牛頓(Isaac Newton)進行了太陽光實驗&#xff0c;讓太陽光通過窗板的小圓孔照射在玻璃三角棱鏡上&#xff0c;光束在棱鏡中折射后&#xff0c;擴散為一個連續的彩虹顏色帶&#xff0c;牛頓稱之為光譜&#xff0c;表示連續的可見光譜。而可見光譜只是所有電磁…

SQL Server各個版本功能比較

微軟的SQlserver主要經歷了從sql server 2000 到最新的sql server 2017&#xff0c;現把各個版本的更新特性介紹如下&#xff1a;SQL SERVER 2000日志傳送索引視圖SQL SERVER 2005數據庫鏡像&#xff08;只有 SQL Server 2005 Enterprise Edition SP1 和更高版本支持異步數據庫…

java hibernate的使用_《Hibernate快速開始 – 4 – 使用JAVA持久層 API (JPA)教程》

章節目標使用JPA EntityManagerFactory使用注解提供映射信息使用 JPA 接口本教程可在 entitymanger/ 路徑下下載4.1. persistence.xml之前的章節使用了hibernate原生的配置文件hibernate.cfg.xml。然而&#xff0c;JPA中定義了不同的的自助配置文件persistence.xml。這個啟動過…

HTTP消息中Header頭部信息整理

1、HTTP請求方式GET向Web服務器請求一個文件POST向Web服務器發送數據讓Web服務器進行處理PUT向Web服務器發送數據并存儲在Web服務器內部HEAD檢查一個對象是否存在DELETE從Web服務器上刪除一個文件CONNECT對通道提供支持TRACE跟蹤到服務器的路徑OPTIONS查詢Web服務器的性能說明&…

gdb命令中attach使用

[測試程序] 我們先看看我們的測試程序: /* in eg1.c */ int wib(int no1, int no2) { int result, diff; diff no1 - no2; result no1 / diff; return result; } int main() { pid_t pid; pid fork(); if (pid &…

java%4d_java積累

數組的使用package javaDemo;import java.util.*;/**** author Administrator* version 1.0***/public class test {public static void main(String[] args){String[] greeting new String[3];greeting[0] "Welcome to Core Java";greeting[1] "by Cay Hors…

查詢CPU占用高的SQL語句的解決方案

觸發器造成死鎖、作業多且頻繁、中間表的大量使用、游標的大量使用、索引的設計不合理、事務操作頻繁、SQL語句設計不合理&#xff0c;都會造成查詢效率低下、影響服務器性能的發揮。我們可以使用sql server自帶的性能分析追蹤工具sql profiler分析數據庫設計所產生問題的來源&…

父類與子類之間的關系

1) 運行課件中的例題ParentChildTest.java&#xff0c;回答下列問題&#xff1a; a) 左邊的程序運行結果是什么&#xff1f; b) 你如何解釋會得到這樣的輸出&#xff1f; 第一個創建一個Parent對象&#xff0c;調用的是父類構造方法 第二個創建一個Child對象&#xff0c;調用的…

php獲取到的json數據如何處理_php – 如何從API獲取JSON數據

我使用過雅虎的符號查找它以JSON格式返回數據.喜歡以下YAHOO.Finance.SymbolSuggest.ssCallback({"ResultSet": {"Query": "ya","Result": [{"symbol": "YHOO","name": "Yahoo! Inc.","…

.NET開發中應該遵循的幾點建議

1、始終控制類的大小那些超大的類在嘗試做太多的事情&#xff0c;這違反了單一職責原則&#xff0c; 為什么一定要將兩個職責分離到單獨的類中呢&#xff1f;因為每一個職責都是變化的中心。在需求變更時&#xff0c;這個變更將會出現在負責該職責的類中。如果一個類承擔了多個…

Linux下jetty報java.lang.OutOfMemoryError: PermGen space及Jetty內存配置調優解決方案

Linux下的jetty報java.lang.OutOfMemoryError: PermGen space及Jetty內存配置調優解決方案問題linux的jetty下發布程序后再啟動jetty服務時&#xff0c;發現啟動不了&#xff0c;從日志中找到報java.lang.OutOfMemoryError: PermGen space。原因分析PermGen space&#xff0c;全…

微博php sdk,手機第三方新浪微博登錄php api實現分析

提供api&#xff0c;POST方式&#xff0c;根據傳遞過來的微博uid/appkey&#xff0c;判斷該用戶的ID是否在自己的數據庫中。如果有&#xff0c;直接登錄返回用戶登錄api的json。如果沒有&#xff0c;就將該用戶的IDtoken請求微博用戶信息api&#xff1a;http://open.weibo.com/…

13條只有程序員才能懂的內涵段子

一、bug跟蚊子的相似之處&#xff1a;1、不知道藏在哪里。2、不知道有多少。3、總是在你即將睡覺休息的時候出現。二、A&#xff1a;最近在看《一拳超人》&#xff0c;覺得咱們程序猿跟埼玉老師有點像啊&#xff01;B&#xff1a;哪里像了&#xff1f;A&#xff1a;越禿越強&am…

Posix消息隊列

一、函數 mq_open 頭文件 mqueue.h&#xff1b; 原型 mqd_t mq_open(const char *name, int oflag, .../*mode_t mode,struct mq_attr* attr*/); 函數功能 創建消息隊列&#xff1b; 參數 name &#xff1a;消息隊列的名字&#xff0c;根據消息隊列的規則&#xff0c;為了更好的…

php 等值線,【地理】攻克等值線的六大法門

3.等值線數值大小的判斷方法(1)通常情況下&#xff0c;據圖中已標注的等值線進行分析標注&#xff0c;標注時注意&#xff1a;①等值線數值的遞變規律&#xff1b;②相鄰兩條等值線差值的大小。(2)在閉合的等值線上&#xff0c;除據以上方法判斷外&#xff0c;還可用“大于…

4步win7下簡單FTP服務器搭建(試驗成功)

本文介紹通過win7自帶的IIS來搭建一個只能實現基本功能的FTP服務器&#xff0c;第一次裝好WIN7后我愣是沒整出來&#xff0c;后來查了一下網上資料經過試驗后搭建成功&#xff0c;其實原理和步驟與windows前期的版本差不多&#xff0c;主要是對新的操作系統還不是很熟悉。相信用…

C#開發模式——單例模式

一、單例模式簡介單例模式是為保證一個對象,在程序運行的任何時刻只有一個實例存在&#xff0c;我們把這種實現方式稱之為“單例模式”。二、單例模式的核心單例類只有一個實例存在單例類提供一個全局訪問點單例類通過自己創建唯一實例單例類對外所有訪問對象都提供一個唯一實例…

video.min.js php,在WordPress中使用videojs來播放七牛私有空間視頻

首先&#xff0c;在主題函數文件functions.php中添加一個獲取七牛下載憑證的函數。這部分參考function qiniu_download_url($url){$url trim($url, /);$deadline strtotime(1 hour);$url sprintf(%s?e%s, $url, $deadline);$sign hash_hmac(sha1, $url, SECRET_KEY, true)…

關于HTTP和HTTPS的區別

一HTTP和HTTPS的基本概念1、HTTP&#xff1a;是互聯網上應用最為廣泛的一種網絡協議&#xff0c;是一個客戶端和服務器端請求和應答的標準&#xff08;TCP&#xff09;&#xff0c;用于從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議&#xff0c;它可以使瀏覽器更加高效&#xf…