标题:有关SQL的小问题。
只看楼主
觋_拂晓
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-9-26
 问题点数:0 回复次数:3 
有关SQL的小问题。
select *
from Students natural join SC natural join Courses
where GRADE<70 and CREDIT>=3;

这个的查询结果只含有一个元组。。


select SNAME
from Students natural join SC natural join Courses
where GRADE<70 and CREDIT>=3;

而为什么这个会有几个重复的捏。。

求指导。
搜索更多相关主题的帖子: natural 
2012-09-26 15:53
别时茫茫
Rank: 2
来 自:安徽蚌埠
等 级:论坛游民
威 望:1
帖 子:29
专家分:72
注 册:2011-10-5
得分:0 
我感觉可能是oracle在优化查询的过程中,后一个SQL先是做投影操作,然后才是连接操作。前一个应该没有这个过程,因为选出的是全部的列,具体的可以看下数据库概论之中的查询优化,可能会找到答案。
2012-10-22 17:39
windows_DV
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-11-6
得分:0 
假设Students,SC里面都有SNAME这一项,那么第二个语句执行的时候,它会查到Students有一个,输出出来。在SC里面查到也有一个SNAME,并且也符合标准,也会输出的
而第一个语句就不会了。
2012-11-06 17:01
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
得分:0 
在sql语句中加一个关键字distance,就可以消除重复了,其实还是你自己的sql语句写的有问题,在select 之后加上。
而且现在写sql语句有谁还是select* 的,把自己要搜索的一个个列出来最好,* 很好资源的

学海无涯#¥%……&*(
2013-07-04 17:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-382147-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.256329 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved