欢迎来到天天文库
浏览记录
ID:52598856
大小:95.00 KB
页数:3页
时间:2020-03-29
《SQL左右内连接分析资料.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、TableAaidadate1al2a23a3TableBbidbdate1bl2b24b4两个表a,b相连接,要取出id相同的字段select*fromainnerjoinbona.aid=b.bid这是仅取出匹配的数据.此时的取出的是:1albl2a2b2那么leftjoin指:select*fromaleftjoinbona.aid=b.bid首先取出“表屮所有数据,然后再加上与a,b匹配的的数据此时的取出的是:1albl2a2b23a3空字符同样的也有rightjoin指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据此时的取出的是:1albl2a2b2
2、4空字符b4LEFTJOIN或LEFTOUTERJOINo左向外联接的结果集包括LEFTOUTER了句屮指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表屮没有匹配行,则在相关联的结果集行屮右表的所有选择列表列均为空值22.leftjoin/righ表A记录如下:alD12aNuma20050111a200501123a2005()1134a200501145a20050115表B记录如下:blDbName1200603240122006032402320060324034200603240482(X)6032408实验如下:1.leftjoinsql语
3、句如卜:SELECT*FROMALEFTJOINBONA.aID=B.bID结果如下:alDaNumblDbName1a20050111120060324012a20050112220060324023a20050113320060324034a20050114420060324045a20050115NULLNULL(所影响的行数为5行)结果说明:leftjoin是以A表的记录为基础的,A可以看成左表,B可以看成右表,leftjoin是以左表为准的.换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为:A.alD=B.blD).B
4、表记录不足的地方均为NULL.2.rightjoinsql语彳U如下:SELECT*FROMARIGHTJOINBONA.aID=B.bID结果如下:blDbName2006032401220060324022006032403alDaNum1a2005011112a200501123a2005011320060324()420060324081a200501144NULLNULL8(所影响的行数为5行)结果说明:仔细观察一下,就会发现,和leftjoin的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.3.innerjoinsql语句如下:SEL
5、ECT*FROMAINNERJOINBONA.alD==B.blD结果如下:alDaNumblDbName1a20050111120060324012a20050112220060324023a20050113320060324034a2005011442006032404结果说明:很明显,这里只显示出了A.alD=B.blD的记录.这说明innerjoin并不以谁为基础,它只显示符合条件的记录.
此文档下载收益归作者所有