关于一个多表等值连接查询的问题
这几天在思考一个问题,
select a, b, c……
from table1,table2
where table1.no=table2.no
和
select a, b, c……
from table1,table2
where table2.no=table1.no(就是互相交换table1,table2的位置)
请问这两个查询检索出来的结果记录一定一样吗???谁能证明一下,高分相送
------解决方案--------------------结果一样.因为where table2.no=table1.no这个条件表示两个表是INNER JOIN,所以结果一样.
------解决方案--------------------仔细想了想,这个有可能不一样吗
如果两个字段的类型一样,值相同,那么无论放前放后都是一样的
特殊情况 null 值也是一样的比较
所以说一定一样
可以选一些特殊字符试试
------解决方案--------------------Inner Join 逻辑运算符返回满足第一个(顶端)输入与第二个(底端)输入所组成的联接的每
一行,不存在先后之分,是返回两表之间的交集
------解决方案--------------------这种写法是内联合(INNER JOIN),结果是一样的,数据再怎么特殊,应该都是一样的。
------解决方案--------------------where table2.no=table1.no说明只能输出no相等的那些行,你换一下位置也是那个结果
就当它是交换律吧!
自己弄两个表试一下就知道了
实践出真知!
------解决方案--------------------经过用6个20000多条记录的表, 过三次测试,最后结果的确是相同的。
------解决方案--------------------inner join .是一样的