Chinaunix
标题:
SQL问题急!!!
[打印本页]
作者:
seapen
时间:
2002-01-30 12:42
标题:
SQL问题急!!!
select * from a, b where a.id *= b.id
请问上句中,\"*=\"是什么意思?和直接用\"=\"有什么区别?
作者:
zhuzhichao
时间:
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
作者:
biti_rainy
时间:
2002-02-02 14:19
标题:
还是
+= 或者 =+ 形象
呵呵
作者:
gnzhao
时间:
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语法,不管在那里执行都可以。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2