SQL Server 外链接操作小结 inner join left join right join
2022-11-12 09:55:04
内容摘要
这篇文章主要为大家详细介绍了SQL Server 外链接操作小结 inner join left join right join,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技
文章正文
这篇文章主要为大家详细介绍了SQL Server 外链接操作小结 inner join left join right join,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
数据库操作语句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.articleidSETtag=tag+'',b.articleid=a.articleid,b.classid=a.classid,b.nclassid=a.nclassidWherea.classid=23ANDa.nclassid=0ANDtagidisnotnull7.5.1程序代码Update(ctarticleASaLEFTJOIN(ctnclassAScLEFTJOINctclassASdONc.classid=d.classid)ONa.nclassid=c.nclassidANDa.classid=c.classid)LEFTJOINcttagASbONa.articleid=b.articleidSETtag=d.class+''+c.nclass,b.articleid=a.articleid,b.classid=a.classid,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.*,b.*,c.*from(ctarticlealeftjoinctclassbona.classid=b.classid)leftjoinctnclasscona.nclassid=c.nclassid//作用,有时在文章表中包含了在个别类别表中没有的数据,用这个语法可以读出文章表的全部数据//a为文章表,b为主类别,c为子类别7.4.3同上例,选择追加数据时加上空格程序代码InsertINTOcttag(articleid,classid,nclassid,tag)Selecta.articleid,a.classid,a.nclassid,d.class+''+c.nclassFROM(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,classid,nclassid,tag)Selecta.articleid,a.classid,a.nclassid,d.class+c.nclassFROM(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=17.4.1连接两个表,并追加数据到其中一个表程序代码InsertINTOcttag(articleid,classid,nclassid)Selecta.articleid,a.classid,a.nclassidFROMctarticleASaLEFTJOINcttagASbONa.articleid=b.articleidwherea.classid=1anda.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=17.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.栏37.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变通中的用法二程序代码InsertINTObureplySelectb.*,a.classid,a.nclassidFROMarticleASaINNERJOINreplyASbONa.articleid=b.articleidWhereclassid=50;7.2.1实际应用中的变通程序代码InsertINTObutag(tag,articleid,classid,nclassid)Selectb.tag,a.articleid,a.classid,a.nclassidFROMarticleASaINNERJOINtagASbONa.articleid=b.articleidWhereclassid=24;7.2添加数据到其他表程序代码InsertINTObutag(tag,articleid)Selectb.tag,a.articleidFROMarticleASaINNERJOINtagASbONa.articleid=b.articleidWherea.articleid<>False;//解读添加到接收表(列1,列2)选择别名b.列1,别名a.列2从表1表名a联接表2表名b在别名a.列c等于别名b.列c在哪里别名a.列c不等于没有7.1.1实际应用中的变通程序代码Selectb.tag,a.articleid,a.classid,a.nclassidFROMarticleASaINNERJOINtagASbONa.articleid=b.articleidWherea.classid=24;7.1查询程序代码Selectb.tag,a.articleidFROMarticleASaINNERJOINtagASbONa.articleid=b.articleidWherea.articleid<>False;//解读选择别名b.列,别名a.列从表1别名a联接表2别名b在别名a.列c=别名b.列c在哪里别名a.列c不等于没有注:as不是必要7.外连接——交叉查询提示:注意表中相同的栏目注:关于SQL Server 外链接操作小结 inner join left join right join的内容就先介绍到这里,更多相关文章的可以留意
代码注释