• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
素蔓、无暇至永恒
承诺总是那么不堪一击~
博客园    首页    新随笔    联系   管理    订阅  订阅

联结

联结其实理解起来很简单,这里做一下学习笔记主要是为了术语的熟悉。

联结使得数据库的伸缩性加强很多。

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,主要是因为使用明确的联结语法能够确保不会忘记联结条件,但是有时候会影响性能。

 

posted @ 2012-07-24 20:47  pain1033  阅读(220)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3