hecal 发表于 2005-11-7 15:38:34

SQL查询语句里where条件中的*=跟=有什么区别?

<P>我在修改一段代码的时候发现where条件里有*= 和=,不知道两者之间有什么区别?</P>
<P>select tr_memup.USERS_CORP_CD, USERS_SHOP_CD, tr_memup.USERS_MACHINE_CD,<BR>CORP_NM, tr_memup.CORP_J, CORP_TEL, CORP_ZIP, <BR>from tr_memup, mt_deal, mt_reason, mt_industry, mt_account,<BR>mt_machine, mt_corp<BR>where NEW_SEQ_NO = '12345'<BR>and tr_memup.USERS_CORP_CD *= mt_corp.CORP_CD<BR>and tr_memup.REASON_CD *= mt_reason.REASON_CD<BR>and tr_memup.ACCOUNT_TYPE_CD *= mt_account.ACCOUNT_CD<BR>and tr_memup.DEAL_CD *= mt_deal.DEAL_CD<BR>and tr_memup.INDUSTRY_CD *= mt_industry.INDUSTRY_CD<BR>and tr_memup.USERS_CORP_CD *= mt_machine.USERS_CORP_CD<BR>and tr_memup.USERS_MACHINE_CD *= mt_machine.USERS_MACHINE_CD</P>

ehxz 发表于 2005-11-7 16:05:24

<P>是不一样,A*=B表示也同时取B里没有的,只有A里有的数据.</P>
<P>如:A里有(1,2,3),B里有(1,2,4),用这个方法会取A里所有的数据了.</P>
<P>A=B的话只能取到(1,2)了</P>

hecal 发表于 2005-11-7 16:13:07

<DIV class=quote><B>以下是引用<I>ehxz</I>在2005-11-7 16:05:24的发言:</B><BR>
<P>是不一样,A*=B表示也同时取B里没有的,只有A里有的数据.</P>
<P>如:A里有(1,2,3),B里有(1,2,4),用这个方法会取A里所有的数据了.</P>
<P>A=B的话只能取到(1,2)了</P></DIV>
<p>非常感谢!关于Sybase的资料太少,这个问题一直困扰了我很长时间。谢谢 !

ehxz 发表于 2005-11-7 16:20:05

<P>别的SQL好象也是这样用的~还有</P>
<P>"=*"一说,有时候会用的上的.</P>

hecal 发表于 2005-11-7 16:37:44

我是把sybase转成oracle,但是*=在oracle中就无法识别,象你说得这样的话,应该是外连接的方式。

flybean 发表于 2005-11-7 16:57:32

是左外连接。等同于left outer join<br>

hecal 发表于 2005-11-7 17:12:48

<P>在oracle中应该为</P>
<P>select tr_memup.USERS_CORP_CD, USERS_SHOP_CD, tr_memup.USERS_MACHINE_CD,<BR>CORP_NM, tr_memup.CORP_J, CORP_TEL, CORP_ZIP, <BR>from tr_memup, mt_deal, mt_reason, mt_industry, mt_account,<BR>mt_machine, mt_corp<BR>where NEW_SEQ_NO = '12345'<BR>and tr_memup.USERS_CORP_CD = mt_corp.CORP_CD(+)<BR>and tr_memup.REASON_CD = mt_reason.REASON_CD(+)<BR>and tr_memup.ACCOUNT_TYPE_CD = mt_account.ACCOUNT_CD(+)<BR>and tr_memup.DEAL_CD = mt_deal.DEAL_CD(+)<BR>and tr_memup.INDUSTRY_CD = mt_industry.INDUSTRY_CD(+)<BR>and tr_memup.USERS_CORP_CD = mt_machine.USERS_CORP_CD(+)<BR>and tr_memup.USERS_MACHINE_CD = mt_machine.USERS_MACHINE_CD(+)</P>
<P>非常感谢各位。</P>

阿辉 发表于 2005-11-9 09:35:03

呵呵,左连和右连

cookie 发表于 2007-1-9 14:36:05

oracle中用的是(+),放在*在sybase中=的另一边

hxd1102 发表于 2008-2-22 13:36:52

对啊,就是连接啊`~
页: [1]
查看完整版本: SQL查询语句里where条件中的*=跟=有什么区别?

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com