| 订阅 | 在线投稿
分享
 
 
当前位置: 王朝网络 >> mssql >> 对跨多个表格的数据组合时需要用到的SQL dui kua duo ge biao ge de shu ju zu he shi xu yao yong dao de SQL
 

对跨多个表格的数据组合时需要用到的SQL

2008-07-19 08:21:46 编辑來源:互联网 繁體版 评论
 
 
本文为【对跨多个表格的数据组合时需要用到的SQL】的汉字拼音对照版显示拼音
  zaiduikuaduogebiaogedeshujujinxingzuheshiyoushihennangaoqingchuyao使shiyongnayigeSQLjufawojiangzaizheliduijiangduogebiaogezhongdechaxunhebingzhidanyishengmingzhongdechangyongfangshijinxingchanshu

  zaizhepianwenzhangzhongdeyangbenchaxunfuheSQL92 ISObiaozhunbushisuoyoudeshujukushengchanshangdouzunxunzhexiangbiaozhunerqiehenduochangshangcaiqudetishengcuoshihuidailaiyixieyiliaobudaodehouguoruguonibuquedingnideshujukushibushizhichizhexiebiaozhunnikeyishenkanshengchanchangshangdeyouguanziliao

  SELECT

  yigejiandandeSELECTshengmingjiushichaxunduogebiaogedezuijibendefangshinikeyizaiFROMzijuzhongtiaoyongduogebiaogelaizuhelaiziduogebiaogedejieguozhelishiyigetaruhegongzuodeshili

  SELECT table1.column1, table2.column2 FROM table1,

  table2 WHERE table1.column1 = table2.column1;

  zhegeshilizhongwo使shiyongdianhao(table1.column1)laizhidingzhuanlanlaizinayigebiaogeruguosuoshejidezhuanlanzhizaiyigeshenkaodebiaogezhongchuxiannijiubuxuyaojiaruwanzhengdemingchengdanshijiaruwanzhengmingchenghuiduikeduxingqidaobangzhu

  zaiFROMzijuzhongbiaogezhijianyoudouhaolaifengenikeyijiarusuoxuderenyiduodebiaogejinguanyixieshujukuyouyigezaiyinruzhengshideJOINshengmingzhiqiantamenkeyiyouxiaodichulideneirongzhefangmiandexianzhizhegejiangzaixiamiantandao

  zhegejufashiyigejiandandeINNER JOINyixieshujukujiangtakanchengyuyigewaibudeJOINshidengtongdeWHEREzijugaozhishujukunayigequyuyaozuoguanlianerqietafanhuijieguoshijiuxiangliechudebiaogezaigeidingdetiaojianxiazuhechengyigedandudebiaogeyiyangzhidezhuyideshinidebijiaotiaojianbingbuxuyaoyunizuoweijieguozufanhuidezhuanlanxiangtongzaishangmiandelizizhongtable1.column1hetable2.column1yonglaizuhebiaogedanshifanhuidequeshitable2.column2

  nikeyizaiWHEREzijuzhong使shiyongANDguanjianzilaijiangzhegegongnengkuozhanzhiduoyulianggedebiaogenihuankeyi使shiyongzheyangdebiaogezuhelaixianzhinidejieguoerbuyongshijidicongmeigebiaogefanhuizhuanlanzaixiamiandelizizhongtable3yutable1pipeidanshiwomeiyoucongtable3fanhuirenhedong西xilaixianshiwozhishiquebaolaizitable1deyouguanzhuanlancunzaiyutable3zhizhongzhuyicilizhongtable3xuyaozaiFROMzijuzhongbeiyinyong

  SELECT table1.column1, table2.column2 FROM table1,

  table2, table3 WHERE table1.column1 =

  table2.column1 AND table1.column1 = table3.column1;

  raneryaozhuyideshizhegechaxunduogebiaogedefangshishiyigeanzhideJOINnideshujukukenengduishiwujinxingbutongdechulizhequjueyutasuo使shiyongdeyouhuayinqingerqiehulueduiyuWHEREzijudexiangguantexingdedingyijianghuigeinidailaibuyuankandaodejieguolirucongyuxiadechaxunzhongfanhuiyumeiyigekenengdejieguoxiangguandezhuanlanderogueyujiuxiangzaiCROSS JOINzhizhongyiyang

  ruguonixiguanyunideshujukuchulizhezhongleixingdeshengmingdefangshiqienizhiduilianggehuoshishaoshujigebiaogejinxingzuheyigejiandandeSELECTshengmingjiukeyidadaomude

  JOIN

  JOINdegongzuofangshiyuSELECTshengmingshixiangtongdetacongbutongdebiaogezhongfanhuiyigedaiyouzhuanlandejieguozuzaianhandeJOINzhishang使shiyongwaibuJOINdeyoushishiduinidejieguozudegenghaodekongzhierqiehuankenengzaishejihenduogebiaogedeqingkuangxiatishengxingnengbiaoxian

  

  JOINdeleixingyoujizhongLEFTRIGHTFULL OUTERINNERheCROSSnisuo使shiyongdeleixingshiyounixiangyaokandaodejieguosuojuedingdeliru使shiyongLEFT OUTER JOINjianghuicongliechudediyigebiaogezhongfanhuisuoyouyouguandexingertongshiruguomeiyouxinxiyudiyigebiaogexiangguandehuajiangqianzaidicongsuoliechudediergebiaogezhongjiaruxing

  zaizheliINNER JOINheanhandeJOINshibutongdeINNER JOINjiangzhifanhuinaxiezailianggebiaogezhongdouyoushujudexing

  duidiyigeSELECTchaxun使shiyongruxiaJOINshengming

  SELECT table1.column1, table2.column2 FROM table1 INNER JOIN table2

  ON table1.column1 = table2.column1;

  zichaxun

  zichaxunhuojiaozixuanzeshengmingshizaiyigechaxunzhongjiangjieguozuzuoweiziyuan使shiyongdeyigetujingtajingchangbeiyonglaiduijieguojinxingxianzhihuodingyierbushiyunxingduogechaxunhuocaozongyingyongruanjianzhizhongdeshujuyoulezichaxunnikeyishenkaobiaogelaijuedingshujudeneihanhuoshizaiyixieqingkuangxiafanhuiyigezhuanlanerzhegezhuanlanshiyigezixuanzedejieguo

  xiamiandelizizhong使shiyonglelianggebiaogeyigebiaogezhongbaohanlewoxiangyaofanhuideshujuerlingyigebiaogezegeichuyigebijiaodianlaiquedingshenmeshujushiwoqueshiganxingqude

  SELECT column1 FROM table1 WHERE EXISTS

  ( SELECT column1 FROM table2

  WHERE table1.column1 = table2.column1 );

  zichaxunhenchongyaodeyigefangmianjiushixingnengbiaoxian便bianlixingshiyoudaijiadetaqujueyunisuo使shiyongdebiaogeheshengmingdedaxiaoshulianghefuduoxinghuanyounikenenghuiyuanxunideyingyongruanjianzuochuligongzuomeiyigechaxunzaibeizhuchaxunzuoweiziyuan使shiyongzhiqiandoujiangbeiwanzhengdidanduchuliruguokenengdehuachuangzaoxingdi使shiyongJOINshengmingkeyiyijiaoshaodezhihoushijiantigongchuxiangtongdexinxi原文
 
 
 
 
上一篇《SQL Server数据库查询优化的常用方法总结》
下一篇《教你在SQL Server数据库中导入导出数据》
 
 
 
 
 
 
 
 
 
日版宠物情人插曲《Winding Road》歌词

日版宠物情人2017的插曲,很带节奏感,日语的,女生唱的。 最后听见是在第8集的时候女主手割伤了,然后男主用嘴帮她吸了一下,插曲就出来了。 歌手:Def...

兄弟共妻,我成了他们夜里的美食

老钟家的两个儿子很特别,就是跟其他的人不太一样,魔一般的执着。兄弟俩都到了要结婚的年龄了,不管自家老爹怎么磨破嘴皮子,兄弟俩说不娶就不娶,老父母为兄弟两操碎了心...

如何磨出破洞牛仔裤?牛仔裤怎么剪破洞?

把牛仔裤磨出有线的破洞 1、具体工具就是磨脚石,下面垫一个硬物,然后用磨脚石一直磨一直磨,到把那块磨薄了,用手撕开就好了。出来的洞啊很自然的。需要猫须的话调几...

我就是扫描下图得到了敬业福和爱国福

先来看下敬业福和爱国福 今年春节,支付宝再次推出了“五福红包”活动,表示要“把欠大家的敬业福都还给大家”。 今天该活动正式启动,和去年一样,需要收集“五福”...

冰箱异味产生的原因和臭味去除的方法

有时候我们打开冰箱就会闻到一股异味,冰箱里的这种异味是因为一些物质发出的气味的混合体,闻起来让人恶心。 产生这些异味的主要原因有以下几点。 1、很多人有这种习...

 
 
在对跨多个表格的数据进行组合时,有时很难搞清楚要使用哪一个SQL句法。我将在这里对将多个表格中的查询合并至单一声明中的常用方式进行阐述。 在这篇文章中的样本查询符合SQL92 ISO标准。不是所有的数据库生产商都遵循这项标准,而且很多厂商采取的提升措施会带来一些意料不到的后果。如果你不确定你的数据库是不是支持这些标准,你可以参看生产厂商的有关资料。 SELECT 一个简单的SELECT声明就是查询多个表格的最基本的方式。你可以在FROM子句中调用多个表格来组合来自多个表格的结果。这里是一个它如何工作的实例: SELECT table1.column1, table2.column2 FROM table1, table2 WHERE table1.column1 = table2.column1; 这个实例中,我使用点号(table1.column1)来指定专栏来自哪一个表格。如果所涉及的专栏只在一个参考的表格中出现,你就不需要加入完整的名称,但是加入完整名称会对可读性起到帮助。 在FROM子句中表格之间由逗号来分隔,你可以加入所需的任意多的表格,尽管一些数据库有一个在引入正式的JOIN声明之前他们可以有效地处理的内容这方面的限制,这个将在下面谈到。 这个句法是一个简单的INNER JOIN。一些数据库将它看成与一个外部的JOIN是等同的。WHERE子句告知数据库哪一个区域要做关联,而且它返回结果时,就像列出的表格在给定的条件下组合成一个单独的表格一样。值得注意的是,你的比较条件并不需要与你作为结果组返回的专栏相同。在上面的例子中,table1.column1和table2.column1用来组合表格,但是返回的却是table2.column2。 你可以在WHERE子句中使用AND关键字来将这个功能扩展至多于两个的表格。你还可以使用这样的表格组合来限制你的结果而不用实际地从每个表格返回专栏。在下面的例子中,table3与table1匹配,但是我没有从table3返回任何东西来显示。我只是确保来自table1的有关专栏存在于table3之中。注意此例中table3需要在FROM子句中被引用。 SELECT table1.column1, table2.column2 FROM table1, table2, table3 WHERE table1.column1 = table2.column1 AND table1.column1 = table3.column1; 然而,要注意的是,这个查询多个表格的方式是一个暗指的JOIN。你的数据库可能对事物进行不同的处理,这取决于它所使用的优化引擎。而且,忽略对与WHERE子句的相关特性的定义将会给你带来不愿看到的结果,例如从余下的查询中返回与每一个可能的结果相关的专栏的rogue域,就像在CROSS JOIN之中一样。 如果你习惯于你的数据库处理这种类型的声明的方式,且你只对两个或是少数几个表格进行组合,一个简单的SELECT声明就可以达到目的。 JOIN JOIN的工作方式与SELECT声明是相同的,它从不同的表格中返回一个带有专栏的结果组。在暗含的JOIN之上使用外部JOIN的优势是对你的结果组的更好的控制,而且还可能在涉及很多个表格的情况下提升性能表现。 JOIN的类型有几种:LEFT,RIGHT,FULL OUTER,INNER和CROSS。你所使用的类型是由你想要看到的结果所决定的。例如,使用LEFT OUTER JOIN将会从列出的第一个表格中返回所有有关的行,而同时如果没有信息与第一个表格相关的话将潜在地从所列出的第二个表格中加入行。 在这里INNER JOIN和暗含的JOIN是不同的,INNER JOIN将只返回那些在两个表格中都有数据的行。 对第一个SELECT查询使用如下JOIN声明: SELECT table1.column1, table2.column2 FROM table1 INNER JOIN table2 ON table1.column1 = table2.column1; 子查询 子查询,或叫子选择声明,是在一个查询中将结果组作为资源使用的一个途径。他经常被用来对结果进行限制或定义,而不是运行多个查询或操纵应用软件之中的数据。有了子查询,你可以参考表格来决定数据的内含,或是在一些情况下,返回一个专栏,而这个专栏是一个子选择的结果。 下面的例子中使用了两个表格。一个表格中包含了我想要返回的数据,而另一个表格则给出一个比较点来确定什么数据是我确实感兴趣的。 SELECT column1 FROM table1 WHERE EXISTS ( SELECT column1 FROM table2 WHERE table1.column1 = table2.column1 ); 子查询很重要的一个方面就是性能表现。便利性是有代价的,它取决于你所使用的表格和声明的大小,数量和复杂性,还有你可能会允许你的应用软件做处理工作。每一个查询在被主查询作为资源使用之前,都将被完整地单独处理。如果可能的话,创造性地使用JOIN声明可以以较少的滞后时间提供出相同的信息。
󰈣󰈤
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
我们约会吧
漂亮白皙的模特
好纯好美的女生
靓丽的网络美女
痞子的甘南日记
疑是银河落九天
雪域坝上四——纯美色
冬日恋歌——西城杨柳弄轻柔
 
>>返回首页<<
 为你推荐
 
 
 转载本文
 UBB代码 HTML代码
复制到剪贴板...
 
 热帖排行
 
 
 
 
©2005- 王朝网络 版权所有