联结其实理解起来很简单,这里做一下学习笔记主要是为了术语的熟悉。
联结使得数据库的伸缩性加强很多。
Let us see see
Select Cname,Pname,Pprice
From Customers,Products
Where Customers.CID=Products.CID
Order by Cname,Pname
红色标注的语句再熟悉不过额,就连数据库报错都记得:CID对象名不明确。
All right:在引用的列可能出现二义性时,必须使用完全限定列名。
看似简单的where语句额,其实呢,如果没有上面的where语句,结果会怎样?
Select Cname,Pname,Pprice
From Customers,Products
Order by Cname,Pname
这样查询的结果就是:笛卡尔积
就是说两张表里的行数相乘了,结果可想而知。
有时会有返回称为叉联结(cross join)的笛卡儿积的联结类型。
接着,再看看这个查询:
Select Cname,Pname,Pprice
From Customers Inner join Products
On Customers.CID=Products.CID
Order by Cname,Pname
内联了一下,其实结果都一样,只是在用法上还是首选Inner join,主要是因为使用明确的联结语法能够确保不会忘记联结条件,但是有时候会影响性能。