欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mysql left( right ) join使用on 与where 筛选的差异

程序员文章站 2022-05-28 21:45:10
...

有这样的一个问题mysql查询使用mysql中left(right)join筛选条件在on与where查询出的数据是否有差异。 可能只看着两个关键字看不出任何的问题。那我们使用实际的例子来说到底有没有差异。 例如存在两张表结构 表结构1 Sql代码 drop table ifEXISTSA; CREATE T

有这样的一个问题mysql查询使用mysql中left(right)join筛选条件在on与where查询出的数据是否有差异。

可能只看着两个关键字看不出任何的问题。那我们使用实际的例子来说到底有没有差异。

例如存在两张表结构

表结构1

Sql代码 mysql left( right ) join使用on 与where 筛选的差异

  1. drop table if EXISTS A;
  2. CREATE TABLE A (
  3. ID int(1) NOT NULL,
  4. PRIMARY KEY (ID)
  5. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

表结构2

Sql代码 mysql left( right ) join使用on 与where 筛选的差异

  1. drop table if EXISTS B;
  2. CREATE TABLE B (
  3. ID int(1) NOT NULL,
  4. PRIMARY KEY (ID)
  5. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

表一插入数据

Sql代码 mysql left( right ) join使用on 与where 筛选的差异

  1. insert into A values ( 1 );
  2. insert into A values ( 2 );
  3. insert into A values ( 3 );
  4. insert into A values ( 4 );
  5. insert into A values ( 5 );
  6. insert into A values ( 6 );

表二插入数据

Sql代码 mysql left( right ) join使用on 与where 筛选的差异

  1. insert into B values ( 1 );
  2. insert into B values ( 2 );
  3. insert into B values ( 3 );

完成后A,B表数据如下:

mysql left( right ) join使用on 与where 筛选的差异

语句一

Sql代码 mysql left( right ) join使用on 与where 筛选的差异

  1. select A.ID as AID, B.ID as BID from A left join B on A.ID = B.ID where B.ID

语句二

Java代码 mysql left( right ) join使用on 与where 筛选的差异

  1. select A.ID as AID, B.ID as BID from A left join B on A.ID = B.ID and B.ID3