SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 966|回复: 2
打印 上一主题 下一主题

SQL中INNER JOIN的问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2004-5-13 04:40:55 | 只看该作者

SQL中INNER JOIN的问题

下面是从SAS网站上看到的程序,希望知道这两个程序是否有区别,结果似乎一样,是否有其他方面的区别。
proc sql;
title 'Inner Join';
select *
from lefttab as l, righttab as r
where l.continent=r.continent;
-------------------------------------------------
proc sql;
title 'Inner Join';
select *
from lefttab as l inner join
righttab as r
on l.continent=r.continent;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2004-5-13 07:59:16 | 只看该作者
I think there is no difference if the syntax for the second one is correct.  The first one is the syntax mostly used for inner join, I have never tried to write something as the second one.  Surely, the left join, right join and full join follows the syntax as the second one.
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2004-5-13 10:32:26 | 只看该作者

re:

我个人觉得这两个程序并没有太大的区别:
它们执行后的结果是相同的.要说区别那可能就是它们在执行过程不同:
proc sql;
title 'Inner Join';
select *
from lefttab as l, righttab as r   
where l.continent=r.continent;
//这段程序是从两张表中取记录,然后比较字段continent,得到结果.
proc sql;
title 'Inner Join';
select *
from lefttab as l inner join
righttab as r
on l.continent=r.continent;
//这段程序就是先将两张表进行连接,然后在连接后的结果中进行删选.得到结果.
-----------------------------------------
个人想法!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-1-9 23:49 , Processed in 0.441799 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表