50分求sql语句的差别

zhuxiaojun2002 北京博雅 程序员  2004-12-21 03:53:01
货物表a
id class_id name
类别表b
id name
属性表c
id class_id name
每个类别都关联自定义属性。请问

select a.name,b.name,c.name
FROM a INNER JOIN
b ON a.class_id= b.id INNER JOIN
c ON a.class_id = c.class_id

select a.name,b.name,c.name
FROM a INNER JOIN
b ON a.class_id= b.id INNER JOIN
c ON b.id = c.class_id
这两种有区别吗?
还有from后的表,我可以用另外两个表中的一个吗?真的很迷茫,恳请大家详细点,感觉好象没差别啊
如果几个表的嵌套查询,from后的表和join表的选择有什么技巧啊。

恳请大家详细点!谢了
...全文
105 点赞 收藏 8
写回复
8 条回复
zhuxiaojun2002 2004年12月22日
兄弟们能不能多补充点啊!拜托了
回复 点赞
zhuxiaojun2002 2004年12月22日
ok,买单了
回复 点赞
vinsonshen 2004年12月21日
产品表作 联接的左端,另外两表都作右端,并且对a表作好id和class_id索引,另外两表对应字段也作好索引
回复 点赞
zhuxiaojun2002 2004年12月21日
to wutao411(了缘)
具体怎么说呢?当然是产品表了,产品表的数据量最大。你说那种好啊!
回复 点赞
了缘 2004年12月21日
具体用哪个,要看你数据库各个表的数据量,
回复 点赞
了缘 2004年12月21日
结果相同,但是查询的路径不同,与效率有关,如果数据库比较大的话,两个的效率就可以明显看出来了
回复 点赞
Overriding 2004年12月21日
得到的结果应该是一样的,这样的语句你完全可以用多条件查询代替。
select a.name,b.name,c.name
FROM a ,b,c where a.class_id= b.id and a.class_id = c.class_id

回复 点赞
yjzhg 2004年12月21日
用企业管理器建立视图,会清楚区别
回复 点赞
发动态
发帖子
应用实例
创建于2007-09-28

1.1w+

社区成员

6.8w+

社区内容

MS-SQL Server 应用实例
社区公告
暂无公告