这两个sql语句之间有什么区别
a)select * from T1,T2 where T1.A=T2.A ;
b)select * from T1,T2 where T2.A=T1.A ;
我在两种情况下得到相同的输出,两种语句之间是否有任何差异?
c)select * from T1 inner join T2 on T1.A=T2.A ;
语句C和a之间的差异是什么?在这种情况下,也得到与a和b相同的输出...
内连接也可以写成sql语句吗?
答案 0 :(得分:8)
它们是使用相同连接条件连接两个表的基本不同方式。
在1到2之间,就数据库而言,绝对没有区别。
最后一个选项是标准化的连接语法 - 这是您应该使用的,以确保您的SQL可读 - 这是人们在您连接表时希望看到的SQL。
答案 1 :(得分:1)
SQL就像数学一样;平等是对称的。如果A = B,那么B = A. 应该没有区别。
JOIN / ON表示法只是编写相同内容的另一种方式。符号的不同之处在于可视化地强调连接。
输出告诉您答案比任何数量的SO用户都要好。你为什么不相信自己的眼睛?
答案 2 :(得分:1)
所有都是一样没有区别这些是不同的方式
答案 3 :(得分:0)
(a)和(c)是相同的,除了第二个是ANSI-92 SQL语法,第一个是没有包含join子句的旧SQL语法。它们应该生成完全相同的内部查询计划,尽管您可能需要检查。
出于几个原因,您应该使用ANSI-92语法