zoukankan      html  css  js  c++  java
  • sql join 和 left join 区别 on 和 where 区别

    有三张表
    film

     category

     film_category

     left join 查询结果

    select *
    from film f left join film_category fc on f.film_id=fc.f_id

    select *
    from film f left join film_category fc on f.film_id=fc.f_id
    where  fc.c_id is null

    select *
    from film f left join film_category fc on f.film_id=fc.f_id
    and fc.c_id is null

     

     join查询结果

    select *
    from film f join film_category fc on f.film_id=fc.f_id

    select *
    from film f join film_category fc on f.film_id=fc.f_id
    where fc.c_id is null

    select *
    from film f join film_category fc on f.film_id=fc.f_id
    and fc.c_id is null

    结论:

    1.join 的where 和on没有区别,内链接,只有复核条件的才会显示出来,条件加在那里都可以

    2.left join 的where和on有区别,left join 不管on的条件是否匹配都是显示左表的全部内容,然后形成虚拟表,通过where去筛选临时表中满足条件的记录

    如果筛选条件在on就会造成匹配不到的数据,左侧还是左表的内容,右边全是null而忽略链接条件 

    left join 筛选的主要是右表,如果筛选不到就会在临时表中显示null,这里on加的是链接条件,筛选条件在where中

    where不能放函数,函数条件需要放在having中

  • 相关阅读:
    实验四 决策树
    实验三 朴素贝叶斯
    实验2 k近邻
    实验一
    实验三
    第二次实验
    实验一
    ATM取款系统
    流程图与活动图的区别与联系
    第一次随笔
  • 原文地址:https://www.cnblogs.com/lalalazar/p/13633785.html
Copyright © 2011-2022 走看看