免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3458 | 回复: 3
打印 上一主题 下一主题

SQL问题急!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-01-30 12:42 |只看该作者 |倒序浏览
select * from a, b where a.id *= b.id

请问上句中,\"*=\"是什么意思?和直接用\"=\"有什么区别?

论坛徽章:
0
2 [报告]
发表于 2002-01-30 12:55 |只看该作者
*=是MSSQL中的左连接.
MS已經声称在以后的版本中这种写法有可能不将支持.

还有一种写法是:
select * from a left join b on (a.id = b.id);

左连接和直接用\"=\"的区别是:
以左边的表作为主表.主表中的纪录即使和右边的表关联不上也会出现在结果集中.

假设a的结构和纪录为
id   a2
1        zzc1
2        zzc2
3        zzc3
4        zzc4

b的结构和纪录为
id        b2
1        seapen1
2        seapen2

那么
select * from a,b where a.id = b.id;
结果集是:
id                a2                id                b2
1                zzc1                1                seapen1
2                zzc2                2                seapen2

而select * from a,b where a.id *= b.id;
结果集是:
id                a2                id                b2
1                zzc1                1                seapen1
2                zzc2                2                seapen2
3                zzc3                null                null
4                zzc4                null                null

论坛徽章:
0
3 [报告]
发表于 2002-02-02 14:19 |只看该作者

还是

+=   或者  =+  形象
呵呵

论坛徽章:
0
4 [报告]
发表于 2002-02-03 19:04 |只看该作者
select * from a,b where a.id *= b.id  该句话在sqlserver 上执行不能后面加分号。看来你对oracle 比较熟悉。


select * from a left join b on a.id = b.id  这种语句是ANSI语法,不管在那里执行都可以。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP