• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

奋斗中...

曾经的程序员。ASP.NET/C#, JavaScript, PL/SQL, T-SQL; 工具: VS2003/2005, Oracle, SQLServer; 偶尔写点CSS, 批处理.
头脑中经常有新想法, 可惜没有去实现.
Never give up.
Never get into a fight with a pig. Both of you will get dirty. But the pig actually enjoys it.
  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

[经验]LEFT JOIN(联表)的条件写在ON中和WHERE的区别

写在ON中是作为关联的条件之一,而写在WHERE条件中,则是筛选依据之一。

比如:

SELECT * FROM A

LEFT JOIN B ON (A.ID = B.ID AND B.NAME = 'NAME')

这条语句可以将在B表找不到的数据(即A.ID在B表中找不到)都保留下来

这条如果写成:

SELECT * FROM A

LEFT JOIN B ON A.ID = B.ID÷

WHERE B.NAME = 'NAME'

这样的话,B表中找不到的数据就不会出来了。这是因为WHERE语句中取B.NAME,如果A的数据不在B中,那么B.NAME 为NULL,

肯定不符合B.NAME = 'NAME'这一条件,所以不会出现在结果集

参考文档:

[1]http://blogold.chinaunix.net/u/29553/showart_435398.html

posted on 2011-01-16 22:37  jes  阅读(1029)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3