zoukankan      html  css  js  c++  java
  • MySQL中条件放在where后面与放在on后面的区别

    假设有两种表:test_on_position表和address表,address表存放地址,test_on_position存放会员及其常用的地址,数据如下:

    address表:

    test_on_position表:

    1. left join

    条件在where后面

    SELECT
    	*
    FROM
    	test_on_position
    LEFT JOIN address ON test_on_position.address = address.id
    WHERE
    	test_on_position.address IS NOT NULL
    

    运行结果:

    条件在on后面

    SELECT
    	*
    FROM
    	test_on_position
    LEFT JOIN address ON test_on_position.address = address.id AND test_on_position.address IS NOT NULL
    

    运行结果:

    结果分析

    当条件放在on后面时,无论on条件的真假,都会返回左表的值;

    当条件放在where后面时,只有满足条件的记录会返回。

    inner join

    条件在on后面

    SELECT
    	*
    FROM
    	test_on_position
    INNER JOIN address ON test_on_position.address = address.id AND test_on_position.address IS NOT NULL
    

    运行结果:

    条件在where后面

    SELECT
    	*
    FROM
    	test_on_position
    INNER JOIN address ON test_on_position.address = address.id
    WHERE
    	test_on_position.address IS NOT NULL
    

    运行结果:

    结果分析

    无论条件放在哪里,都只会返回满足条件的结果。

  • 相关阅读:
    Sublime keymap 个性修改
    Sublime setting 个性修改
    微信公众接口测试频道
    Thinkphp 架构笔记
    mac ssh 远程容易断线解决方案
    日期按日、周、月 递增
    Centos Apache 多站点配置
    tar解压
    mac 将本地文件上传到vps
    ssh 连接vps
  • 原文地址:https://www.cnblogs.com/acode/p/9531755.html
Copyright © 2011-2022 走看看