最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL 外鏈接操作小結(jié) inner join   left join   right join

 更新時間:2006年11月18日 00:00:00   作者:  
數(shù)據(jù)庫操作語句 
7. 外連接——交叉查詢
7.1 查詢 
7.2 等值連接
7.3 右外連接
7.4 左外連接
7.5 更新操作

簡介:

外部連接和自聯(lián)接
inner join(等值連接) 只返回兩個表中聯(lián)結(jié)字段相等的行
left join(左聯(lián)接) 返回包括左表中的所有記錄和右表中聯(lián)結(jié)字段相等的記錄
right join(右聯(lián)接) 返回包括右表中的所有記錄和左表中聯(lián)結(jié)字段相等的記錄
on 指定表間聯(lián)結(jié)字段及其關(guān)系的等號 "=" 表達式, 返回 true 或 false. 當(dāng)表達式返回 true 時, 則查詢中包含該記錄. 
! 外部連接只能操作已存在于數(shù)據(jù)庫中的數(shù)據(jù)

7.5.2

 程序代碼
Update (ctarticle AS a LEFT JOIN ctclass AS c ON a.classid = c.classid) LEFT JOIN cttag AS b ON a.articleid = b.articleid 
SET tag=tag+' ', b.articleid=a.articleid, b.classid=a.classid, b.nclassid=a.nclassid 
Where a.classid=23 AND a.nclassid=0 AND tagid is not null


7.5.1 

 程序代碼
Update (ctarticle AS a LEFT JOIN (ctnclass AS c LEFT JOIN ctclass AS d ON c.classid = d.classid) ON a.nclassid = c.nclassid AND a.classid = c.classid) LEFT JOIN cttag AS b ON a.articleid = b.articleid SET tag=d.class+' '+c.nclass, b.articleid=a.articleid, b.classid=a.classid, b.nclassid=a.nclassid Where a.classid=23 AND a.nclassid=197;


7.5 更新操作

74.5 左連接中數(shù)據(jù)的篩選

 程序代碼
Insert INTO cttag(articleid,classid,nclassid) Select a.articleid,a.classid,a.nclassid from ctarticle a left join cttag b on a.articleid=b.articleid where b.articleid is null

//本語句功能為, 顯示主表的全部內(nèi)容, 插入數(shù)據(jù)到副表中沒有的數(shù)據(jù)
//主要作用為: 讓數(shù)據(jù)減少冗余

7.4.4.1 上例中的延續(xù)

 程序代碼
Select a.*, b.*, c.*, d.*
FROM cttag as d left join ((ctarticle AS a LEFT JOIN ctclass AS b ON a.classid=b.classid) LEFT JOIN ctnclass AS c ON a.nclassid=c.nclassid) on d.articleid=a.articleid;


7.4.4 顯示文章表中的全部, 調(diào)用類別表中的欄目

 程序代碼
select a.*, b.*, c.* from (ctarticle a left join ctclass b on a.classid=b.classid) left join ctnclass c on a.nclassid=c.nclassid

//作用, 有時在文章表中包含了在個別類別表中沒有的數(shù)據(jù), 用這個語法可以讀出文章表的全部數(shù)據(jù)
//a 為 文章表, b 為主類別, c 為子類別

7.4.3 同上例, 選擇追加數(shù)據(jù)時加上空格

 程序代碼
Insert INTO cttag(articleid,classid,nclassid,tag)
Select a.articleid,a.classid,a.nclassid,d.class+' '+c.nclass
FROM (ctarticle AS a left join (ctnclass c left join ctclass d on c.classid=d.classid) on a.classid=c.classid and a.nclassid=c.nclassid) LEFT JOIN cttag AS b ON a.articleid = b.articleid where a.classid=4 and a.nclassid=154;


7.4.2 連接N個表, 并追加數(shù)據(jù)到其中一個表, N=4

 程序代碼
Insert INTO cttag(articleid,classid,nclassid,tag)
Select a.articleid,a.classid,a.nclassid,d.class+c.nclass
FROM (ctarticle AS a left join (ctnclass c left join ctclass d on c.classid=d.classid) on a.classid=c.classid and a.nclassid=c.nclassid) LEFT JOIN cttag AS b ON a.articleid = b.articleid where a.classid=1 and a.nclassid=1;

//解讀
插入到 表2(欄1,欄2,欄3,欄4)
選擇 別名a.欄1, 別名a.欄2, 別名a.欄3, 別名d.欄4 加上 別名c.欄5
從 (表1 別名a 左連接 (表3 別名c 左連接 表4 別名d 在 別名c.欄2 等于 別名d.欄2) 在 別名a.欄2 等于 別名c.欄2 和 別名a.欄3=別名c.欄3) 左連接 表2 別名b 在 別名a.欄1 等于 別名b.欄1 在那里 別名a.欄2=1 和 別名a.欄3=1

7.4.1 連接兩個表, 并追加數(shù)據(jù)到其中一個表

 程序代碼
Insert INTO cttag(articleid,classid,nclassid)
Select a.articleid,a.classid,a.nclassid
FROM ctarticle AS a LEFT JOIN cttag AS b ON a.articleid = b.articleid where a.classid=1 and a.nclassid=1;

//解讀
插入到 表2(欄1,欄2,欄3)
選擇 別名a.欄1, 別名a.欄2, 別名a.欄3
從 表1 別名a 左連接 表2 別名b 在 別名a.欄1 等于 別名b.欄1 在那里 別名a.欄4=1 和 別名a.欄5=1

7.4. 左連接

7.3.1 同步兩表的數(shù)據(jù)

 程序代碼
Update ctarticle a INNER JOIN cttag b ON a.articleid = b.articleid SET b.classid=a.classid, b.nclassid=a.nclassid;

//解讀
更新 表1 別名a 聯(lián)接 表2 別名2 在 別名a.欄1 等于 別名b.欄1 設(shè)置 別名b.欄2 更新為 別名a.欄2, 別名b.欄3 更新為 別名a.欄3 

7.3 右外連接

 程序代碼
select a.*, b.* from bunclass a right join ctclass b on a.classid=b.classid where a.nclassid=20

查詢別名 a,b 表, 只匹配 b 表中的內(nèi)容.

7.2.3 添加數(shù)據(jù)到連接表之一

 程序代碼
Insert INTO cttag ( tag, articleid ) Select top 1 b.tag, a.articleid FROM ctarticle AS a left JOIN cttag AS b ON a.articleid = b.articleid Where a.articleid order by a.articleid desc;


7.2.2 變通中的用法二

 程序代碼
Insert INTO bureply 
Select b.*, a.classid, a.nclassid
FROM article AS a INNER JOIN reply AS b ON a.articleid = b.articleid
Where classid=50;


7.2.1 實際應(yīng)用中的變通

 程序代碼
Insert INTO butag ( tag, articleid, classid, nclassid)
Select b.tag, a.articleid, a.classid, a.nclassid
FROM article AS a INNER JOIN tag AS b ON a.articleid = b.articleid
Where classid=24;


7.2 添加數(shù)據(jù)到其他表

 程序代碼
Insert INTO butag ( tag, articleid )
Select b.tag, a.articleid
FROM article AS a INNER JOIN tag AS b ON a.articleid = b.articleid
Where a.articleid<>False;

//解讀
添加到 接收表(列1,列2)
選擇 別名b.列1, 別名a.列2
從 表1 表名a 聯(lián)接 表2 表名b 在 別名a.列c 等于 別名b.列c
在哪里 別名a.列c 不等于 沒有

7.1.1 實際應(yīng)用中的變通

 程序代碼
Select b.tag, a.articleid, a.classid, a.nclassid
FROM article AS a INNER JOIN tag AS b ON a.articleid = b.articleid
Where a.classid=24;


7.1 查詢

 程序代碼
Select b.tag, a.articleid
FROM article AS a INNER JOIN tag AS b ON a.articleid = b.articleid
Where a.articleid<>False;

//解讀
選擇 別名b.列, 別名a.列
從 表1 別名a 聯(lián)接 表2 別名b 在 別名a.列c = 別名b.列c
在哪里 別名a.列c 不等于 沒有
注: as 不是必要

7. 外連接——交叉查詢
提示: 注意表中相同的欄目 

相關(guān)文章

  • MSSQL數(shù)據(jù)庫占用內(nèi)存過大造成服務(wù)器死機問題的解決方法

    MSSQL數(shù)據(jù)庫占用內(nèi)存過大造成服務(wù)器死機問題的解決方法

    有時候我們的服務(wù)器使用MSSQL數(shù)據(jù)庫,但如果MSSQL數(shù)據(jù)庫占用內(nèi)存過大可能導(dǎo)致服務(wù)器死機,這里分享下解決方法, 需要的朋友可以參考下
    2013-07-07
  • 如何優(yōu)化SQL語句的心得淺談

    如何優(yōu)化SQL語句的心得淺談

    我們要做到不但會寫SQL,還要做到寫出性能優(yōu)良的SQL語句
    2013-09-09
  • sqlSQL數(shù)據(jù)庫怎么批量為存儲過程/函數(shù)授權(quán)呢?

    sqlSQL數(shù)據(jù)庫怎么批量為存儲過程/函數(shù)授權(quán)呢?

    在工作當(dāng)中遇到一個類似這樣的問題:要對數(shù)據(jù)庫賬戶的權(quán)限進行清理、設(shè)置,其中有一個用戶Test,只能擁有數(shù)據(jù)庫MyAssistant的DML(更新、插入、刪除等)操作權(quán)限,另外擁有執(zhí)行數(shù)據(jù)庫存儲過程、函數(shù)的權(quán)限,但是不能進行DDL操作(包括新建、修改表、存儲過程等...),于是需要設(shè)置登錄名Test的相關(guān)權(quán)限
    2013-08-08
  • SQL Server中with as使用介紹

    SQL Server中with as使用介紹

    這篇文章主要介紹了SQL Server中with as使用介紹,需要的朋友可以參考下
    2019-11-11
  • SQLServer 日期函數(shù)大全(小結(jié))

    SQLServer 日期函數(shù)大全(小結(jié))

    這篇文章主要介紹了SQLServer 日期函數(shù)大全(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • SQL Server的復(fù)制功能

    SQL Server的復(fù)制功能

    SQL Server的復(fù)制功能微軟本身主要是用來發(fā)布及共享報表的。
    2009-05-05
  • 真正高效的SQLSERVER分頁查詢(多種方案)

    真正高效的SQLSERVER分頁查詢(多種方案)

    Sqlserver數(shù)據(jù)庫分頁查詢一直是Sqlserver的短板,分頁查詢每頁30條,查詢第1500頁(即第45001-45030條數(shù)據(jù))進行測試,分析出最高效的查詢,感興趣的朋友可以參考下哈
    2013-04-04
  • 使用 SQL 語句實現(xiàn)一個年會抽獎程序的代碼

    使用 SQL 語句實現(xiàn)一個年會抽獎程序的代碼

    這篇文章主要介紹了使用 SQL 語句實現(xiàn)一個年會抽獎程序,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • 每個分類取最新的幾條的SQL實現(xiàn)代碼

    每個分類取最新的幾條的SQL實現(xiàn)代碼

    每個分類取最新的幾條的SQL實現(xiàn)代碼,需要的朋友可以參考下
    2012-08-08
  • SQL如何實現(xiàn)橫表與縱表相互轉(zhuǎn)換

    SQL如何實現(xiàn)橫表與縱表相互轉(zhuǎn)換

    針對SQL橫向表轉(zhuǎn)縱向的問題,本文從實際應(yīng)用出發(fā),詳細講解了語法和操作步驟,并結(jié)合實例進行了演示和說明。文章還探討了該方法的優(yōu)缺點,提出了一些值得注意的事項,旨在幫助讀者更深入地理解這一重要的數(shù)據(jù)處理技巧
    2023-04-04

最新評論

图们市| 张家口市| 永嘉县| 红原县| 上杭县| 酉阳| 阳春市| 南京市| 祥云县| 灌云县| 瓮安县| 台北市| 明水县| 京山县| 芦山县| 砚山县| 子洲县| 江达县| 晋宁县| 黄骅市| 望都县| 深州市| 高清| 伊春市| 珲春市| 丹东市| 牙克石市| 泗阳县| 景谷| 安龙县| 新沂市| 乌鲁木齐市| 哈密市| 嘉兴市| 彰化市| 怀集县| 固安县| 台前县| 湄潭县| 梅河口市| 佛山市|