有关自身连接的问题

zjj1211 2009-05-13 09:49:02
要求:查询与’王平’的办公电话相同的读者的姓名
表如下:
编号 读者号 姓名 性别 电话
1 001973 王平 男 88320701
2 001974 张丽 女 88320701
3 001975 王辉 男 88320701
4 001976 李建 男 88320701
5 001977 程淡 女 88320701

我的SQL语句
:select b.姓名 from 读者表 a, 读者表 b, where a.电话=b.电话 and
a.姓名='王平';
如果这样写:select a.姓名 from 读者表 a, 读者表 b, where a.电话=b.电话 and a.姓名='王平';
执行的结果为什么不一样???


...全文
149 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
vbagcl 2009-05-14
  • 打赏
  • 举报
回复
http://www.86vb.com/readfile.php?filetype=20090508121944&filename=20090509122127
这里有一个类型问题,不知道能否解决你的问题。
gaohaha 2009-05-14
  • 打赏
  • 举报
回复
有相同电话号码的人
zjj1211 2009-05-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ldw2545398 的回复:]
你可以查下
select a.姓名,b.姓名 from 读者表 a, 读者表 b, where a.电话=b.电话 and
a.姓名='王平';
你就该知道为什么了
[/Quote]
我查了,还是不知道为什么--!
对了问下大家啊,你们头像下面的昵称是怎么改的?我怎么找不到,老说我很懒没有设置搞得我很郁闷
zjj1211 2009-05-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zxf_feng 的回复:]
select b.姓名 from 读者表 a, 读者表 b, where a.电话=b.电话 and a.姓名='王平';
select a.姓名 from 读者表 a, 读者表 b, where a.电话=b.电话 and a.姓名='王平';

没有区别吧,我没的看出来
[/Quote]
有~~~
阿三 2009-05-14
  • 打赏
  • 举报
回复
select b.姓名 from 读者表 a, 读者表 b, where a.电话=b.电话 and a.姓名='王平';
select a.姓名 from 读者表 a, 读者表 b, where a.电话=b.电话 and a.姓名='王平';

没有区别吧,我没的看出来
ldw2545398 2009-05-14
  • 打赏
  • 举报
回复
你可以查下
select a.姓名,b.姓名 from 读者表 a, 读者表 b, where a.电话=b.电话 and
a.姓名='王平';
你就该知道为什么了
ldw2545398 2009-05-14
  • 打赏
  • 举报
回复
第一个结果应该是要的数据~
第二个救过应该只有一个值 王平吧
因为你差 a.姓名 后面又有条件a.姓名=‘王平’ 当然只有王平了
jarry1666 2009-05-14
  • 打赏
  • 举报
回复
你定义了别名,想象成两个表
zjj1211 2009-05-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mosaic 的回复:]
当然不一样:

第二种方式你已经指定了a.姓名='王平',再取a.姓名,那只要有结果,必定就是'王平'
第一种方式,因为指定了a.姓名='王平',则在a表可定位编号为1的记录,再用该记录的电话去匹配b表,那么电话号码和该号码相同的所有记录都会返回,包括姓名为'王平'的记录(按你给出的数据应该是所有记录)。
[/Quote]
还是有点不明白,a和b不是同一个表吗?
bw555 2009-05-13
  • 打赏
  • 举报
回复
所谓的自连接就是把一个表看成是两个相同的表


select a.姓名 from 读者表 a, 读者表 b, where a.电话=b.电话 and a.姓名='王平';
mosaic 2009-05-13
  • 打赏
  • 举报
回复
当然不一样:

第二种方式你已经指定了a.姓名='王平',再取a.姓名,那只要有结果,必定就是'王平'
第一种方式,因为指定了a.姓名='王平',则在a表可定位编号为1的记录,再用该记录的电话去匹配b表,那么电话号码和该号码相同的所有记录都会返回,包括姓名为'王平'的记录(按你给出的数据应该是所有记录)。
inthirties 2009-05-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 zjj1211 的帖子:]
要求:查询与’王平’的办公电话相同的读者的姓名
表如下:
编号 读者号 姓名 性别 电话
1 001973 王平 男 88320701
2 001974 张丽 女 88320701
3 001975 王辉 男 88320701
4 001976 李建 男 88320701
5 001977 程淡 女 88320701

我的SQL语句
:select <b>b.姓名</b> from 读者表 a, 读者表 b, where a.电话=b.电话 and
a.姓名='王平';
如果这样写:select <b>a.姓名</b> from 读者表 a, 读者表 b, where a.电话=b.电话 and a.姓名…
[/Quote]


当然不一样呀,

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧