表自身 自然连接 问题
时间:2011-09-23
来源:互联网
有一张表test,只有一个属性a,如下:
a
1
2
3
则:
select * from test natural join test 结果为:
a
1
1
1
2
2
2
3
3
3
select * from test t1 natural test test t2 结果为:
a
1
2
3
请问表加不加别名的区别是?
谢谢
a
1
2
3
则:
select * from test natural join test 结果为:
a
1
1
1
2
2
2
3
3
3
select * from test t1 natural test test t2 结果为:
a
1
2
3
请问表加不加别名的区别是?
谢谢
作者: ebeyond 发布时间: 2011-09-23
自然连接(Natural join)
Natural join基于两个表中的全部同名列建立连接
从两个表中选出同名列的值均对应相等的所有行
如果两个表中的同名列的所有数据类型不同,则出错
不允许在参照列上使用表名或者别名作为前缀
Natural join基于两个表中的全部同名列建立连接
从两个表中选出同名列的值均对应相等的所有行
如果两个表中的同名列的所有数据类型不同,则出错
不允许在参照列上使用表名或者别名作为前缀
作者: rihyou 发布时间: 2011-09-23
你贴出来的语句是有问题的吧?
我自己用表试了一下:
select * from test_yixl1 natural join test_yixl
minus
select * from test_yixl1 t1 natural join test_yixl t2
--执行结果,没有记录
表加不加别名效果是一样的。
我自己用表试了一下:
select * from test_yixl1 natural join test_yixl
minus
select * from test_yixl1 t1 natural join test_yixl t2
--执行结果,没有记录
表加不加别名效果是一样的。
作者: yixilan 发布时间: 2011-09-23
引用 2 楼 yixilan 的回复:
你贴出来的语句是有问题的吧?
我自己用表试了一下:
select * from test_yixl1 natural join test_yixl
minus
select * from test_yixl1 t1 natural join test_yixl t2
--执行结果,没有记录
表加不加别名效果是一样的。
你贴出来的语句是有问题的吧?
我自己用表试了一下:
select * from test_yixl1 natural join test_yixl
minus
select * from test_yixl1 t1 natural join test_yixl t2
--执行结果,没有记录
表加不加别名效果是一样的。
您好!那两条查询我运行了,确实没错。minus并不能确定两查询结果相同吧
作者: ebeyond 发布时间: 2011-09-23
第一种是自然连接,因为你连接的是自身,所有所有字段都是一样的,
你的每条数据都会和所有的行进行关联,也就是做了一个类笛卡尔积;
第二种起了别名就是两个表了,只会做一次关联,这个才是正确的阿
你的每条数据都会和所有的行进行关联,也就是做了一个类笛卡尔积;
第二种起了别名就是两个表了,只会做一次关联,这个才是正确的阿
作者: lxyzxq2008 发布时间: 2011-09-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28