关于数据库表左右连接时查询条件在on后和where后的区别

上一篇 / 下一篇  2016-05-12 14:57:58 / 个人分类:SQL

现在数据表如下:

注:A表的id与B表的fk_id关联
若要找出A表中在B表的IO_flag不含O的数据,包括A表在B表中没有关联到的数据
SQL如下:
select * from A left join B on A.id=B.fk_id where B.IO_flag='I'
查询结果如下,少**碇忻挥泄亓紹表的数据:

但若SQL中的限定条件改到on后面后,结果却不一样:
select * from A left join B on A.id=B.fk_id and B.IO_flag='I'
查询结果如下,包含**碇忻挥泄亓紹表的数据:

结论:
    1、限定条件在where后是关联表之后再按限定条件过滤。
    2、限定条件在on后是先限定了要关联表的数据后再进行关联。

TAG: 左连接 表连接 右连接

 

评分:0

我来说两句

我的栏目

日历

« 2024-05-09  
   1234
567891011
12131415161718
19202122232425
262728293031 

我的存档

数据统计

  • 访问量: 2177
  • 日志数: 2
  • 建立时间: 2016-05-10
  • 更新时间: 2016-05-27

RSS订阅

Open Toolbar