Mysql基本用法-02

时间:2014-05-08 21:08:56   收藏:0   阅读:445

 left join  #左连接又叫外连接 left join 返回左表中所有记录和右表中连接字段相等的记录 

 

bubuko.com,布布扣

bubuko.com,布布扣

SQL:  select * from test_user left join phpcvs on test_user.id=phpcvs.id

执行结果如下图:

bubuko.com,布布扣

 


 

 

 right join  #右连接又叫外连接 right join返回右表中所有记录和左表中连接字段相等的记录  

SQL:  select * from test_user right join phpcvs on test_user.id=phpcvs.id

执行结果如下图: 

bubuko.com,布布扣

   (这里执行结果只有一条数据是因为right join的时候phpcvs表里只有一条数据。)


 

 inner join  #等值连接又叫内链接 inner join 只返回两个表中连接字段相等的行 

 

SQL:  select * from test_user inner join phpcvs on test_user.id=phpcvs.id

执行结果如下图:

bubuko.com,布布扣

(* 这里返回两个表中字段相等的值,所以只会有一条数据)

 

 


 

 子查询 和 JOIN 

      SQL:  select * from test_user where id not in (select id from phpcvs)

      bubuko.com,布布扣

 

      SQL:  select test_user.* from test_user left join phpcvs on test_user.id=phpcvs.id where phpcvs.id is null

      bubuko.com,布布扣

* 子查询 和 JOIN 在数据量少的情况下感觉两种情况的执行时间都差不多。有时候子查询还会比用JOIN要快。

* 连接(JOIN).. 更有效率一些,是因为 MySQL不需要在内存中创建临时表来完成这个逻辑上的需要两个步骤的查询工作。

Mysql基本用法-02,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!