首页 MsSql SQL 外链接操作小结 inner join left join right join

SQL 外链接操作小结 inner join left join right join

SQL 外链接操作小结 inner join left join right join

数据库操作语句
7.外连接——交叉查询
7.1查询
7.2等值连接
7.3右外连接
7.4左外连接
7.5更新操作 简介: 外部连接和自联接
innerjoin(等值连接)只返回两个表中联结字段相等的行
leftjoin(左联接)返回包括左表中的所有记录和右表中联结字段相等的记录
rightjoin(右联接)返回包括右表中的所有记录和左表中联结字段相等的记录
on指定表间联结字段及其关系的等号”=”表达式,返回true或false.当表达式返回true时,则查询中包含该记录.
!外部连接只能操作已存在于数据库中的数据 7.5.2 程序代码
Update(ctarticleASaLEFTJOINctclassAScONa.classid=c.classid)LEFTJOINcttagASbONa.articleid=b.articleid
SETtag=tag+”,b.articleid=a.articleid,b.classid=a.classid,b.nclassid=a.nclassid
Wherea.classid=23ANDa.nclassid=0ANDtagidisnotnull
7.5.1 程序代码
Update(ctarticleASaLEFTJOIN(ctnclassAScLEFTJOINctclassASdONc.classid=d.classid)ONa.nclassid=c.nclassidANDa.classid=c.classid)LEFTJOINcttagASbONa.articleid=b.articleidSETtag=d.class+”+c.nclass,b.nclassid=a.nclassidWherea.classid=23ANDa.nclassid=197;
7.5更新操作 74.5左连接中数据的筛选 程序代码
InsertINTOcttag(articleid,classid,nclassid)Selecta.articleid,a.classid,a.nclassidfromctarticlealeftjoincttagbona.articleid=b.articleidwhereb.articleidisnull //本语句功能为,显示主表的全部内容,插入数据到副表中没有的数据
//主要作用为:让数据减少冗余 7.4.4.1上例中的延续 程序代码
Selecta.,b.,c.,d.
FROMcttagasdleftjoin((ctarticleASaLEFTJOINctclassASbONa.classid=b.classid)LEFTJOINctnclassAScONa.nclassid=c.nclassid)ond.articleid=a.articleid;
7.4.4显示文章表中的全部,调用类别表中的栏目 程序代码
selecta.,c.from(ctarticlealeftjoinctclassbona.classid=b.classid)leftjoinctnclasscona.nclassid=c.nclassid //作用,有时在文章表中包含了在个别类别表中没有的数据,用这个语法可以读出文章表的全部数据
//a为文章表,b为主类别,c为子类别 7.4.3同上例,选择追加数据时加上空格 程序代码
InsertINTOcttag(articleid,nclassid,tag)
Selecta.articleid,a.nclassid,d.class+”+c.nclass
FROM(ctarticleASaleftjoin(ctnclasscleftjoinctclassdonc.classid=d.classid)ona.classid=c.classidanda.nclassid=c.nclassid)LEFTJOINcttagASbONa.articleid=b.articleidwherea.classid=4anda.nclassid=154;
7.4.2连接N个表,并追加数据到其中一个表,N=4 程序代码
InsertINTOcttag(articleid,d.class+c.nclass
FROM(ctarticleASaleftjoin(ctnclasscleftjoinctclassdonc.classid=d.classid)ona.classid=c.classidanda.nclassid=c.nclassid)LEFTJOINcttagASbONa.articleid=b.articleidwherea.classid=1anda.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连接两个表,并追加数据到其中一个表 程序代码
InsertINTOcttag(articleid,nclassid)
Selecta.articleid,a.nclassid
FROMctarticleASaLEFTJOINcttagASbONa.articleid=b.articleidwherea.classid=1anda.nclassid=1; //解读
插入到表2(栏1,栏3)
选择别名a.栏1,别名a.栏3
从表1别名a左连接表2别名b在别名a.栏1等于别名b.栏1在那里别名a.栏4=1和别名a.栏5=1 7.4.左连接 7.3.1同步两表的数据 程序代码
UpdatectarticleaINNERJOINcttagbONa.articleid=b.articleidSETb.classid=a.classid,b.nclassid=a.nclassid; //解读
更新表1别名a联接表2别名2在别名a.栏1等于别名b.栏1设置别名b.栏2更新为别名a.栏2,别名b.栏3更新为别名a.栏3 7.3右外连接 程序代码
selecta.,b.frombunclassarightjoinctclassbona.classid=b.classidwherea.nclassid=20 查询别名a,b表,只匹配b表中的内容. 7.2.3添加数据到连接表之一 程序代码
InsertINTOcttag(tag,articleid)Selecttop1b.tag,a.articleidFROMctarticleASaleftJOINcttagASbONa.articleid=b.articleidWherea.articleidorderbya.articleiddesc;
7.2.2变通中的用法二 程序代码
InsertINTObureply
Selectb.*,a.nclassid
FROMarticleASaINNERJOINreplyASbONa.articleid=b.articleid
Whereclassid=50;
7.2.1实际应用中的变通 程序代码
InsertINTObutag(tag,articleid,nclassid)
Selectb.tag,a.articleid,a.nclassid
FROMarticleASaINNERJOINtagASbONa.articleid=b.articleid
Whereclassid=24;
7.2添加数据到其他表 程序代码
InsertINTObutag(tag,articleid)
Selectb.tag,a.articleid
FROMarticleASaINNERJOINtagASbONa.articleid=b.articleid
Wherea.articleid<>False; //解读
添加到接收表(列1,列2)
选择别名b.列1,别名a.列2
从表1表名a联接表2表名b在别名a.列c等于别名b.列c
在哪里别名a.列c不等于没有 7.1.1实际应用中的变通 程序代码
Selectb.tag,a.nclassid
FROMarticleASaINNERJOINtagASbONa.articleid=b.articleid
Wherea.classid=24;
7.1查询 程序代码
Selectb.tag,a.articleid
FROMarticleASaINNERJOINtagASbONa.articleid=b.articleid
Wherea.articleid<>False; //解读
选择别名b.列,别名a.列
从表1别名a联接表2别名b在别名a.列c=别名b.列c
在哪里别名a.列c不等于没有
注:as不是必要 7.外连接——交叉查询
提示:注意表中相同的栏目

本文来自网络,不代表云浮站长网立场。转载请注明出处: https://www.0766zz.com/html/shujuku/mssql/20200916/10442.html
上一篇
下一篇

作者: dawei

【声明】:云浮站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

返回顶部