主頁(yè) > 知識(shí)庫(kù) > SQL 外鏈接操作小結(jié) inner join   left join   right join

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

熱門標(biāo)簽:沈陽外呼系統(tǒng)有效果嗎 商家地圖標(biāo)注圖片 電話機(jī)器人接口是什么樣的 AI智能云呼電話機(jī)器人怎么注冊(cè) 百度地圖標(biāo)注信息怎么修改 怎么在高德地圖標(biāo)注多個(gè)點(diǎn) 四川穩(wěn)定外呼系統(tǒng)公司 溫州語音外呼系統(tǒng)排名 福州外呼系統(tǒng)招商
數(shù)據(jù)庫(kù)操作語句 
7. 外連接——交叉查詢
7.1 查詢 
7.2 等值連接
7.3 右外連接
7.4 左外連接
7.5 更新操作

簡(jiǎn)介:

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

//本語句功能為, 顯示主表的全部?jī)?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í)在文章表中包含了在個(gè)別類別表中沒有的數(shù)據(jù), 用這個(gè)語法可以讀出文章表的全部數(shù)據(jù)
//a 為 文章表, b 為主類別, c 為子類別

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

 程序代碼
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個(gè)表, 并追加數(shù)據(jù)到其中一個(gè)表, 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 連接兩個(gè)表, 并追加數(shù)據(jù)到其中一個(gè)表

 程序代碼
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 實(shí)際應(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 實(shí)際應(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. 外連接——交叉查詢
提示: 注意表中相同的欄目 
您可能感興趣的文章:
  • 超詳細(xì)mysql left join,right join,inner join用法分析
  • 數(shù)據(jù)庫(kù)Left join , Right Join, Inner Join 的相關(guān)內(nèi)容,非常實(shí)用
  • 解析sql語句中l(wèi)eft_join、inner_join中的on與where的區(qū)別
  • SQL之left join、right join、inner join的區(qū)別淺析
  • inner join 內(nèi)聯(lián)與left join 左聯(lián)的實(shí)例代碼
  • inner join和left join之間的區(qū)別詳解

標(biāo)簽:營(yíng)口 寶雞 邯鄲 來賓 汕尾 七臺(tái)河 無錫 西寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL 外鏈接操作小結(jié) inner join   left join   right join》,本文關(guān)鍵詞  SQL,外,鏈接,操作,小結(jié),inner,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL 外鏈接操作小結(jié) inner join   left join   right join》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于SQL 外鏈接操作小結(jié) inner join   left join   right join的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章