详解mysql语法left join,right join,inner join
cookqq ›博客列表 ›mysql

详解mysql语法left join,right join,inner join

2013-03-06 09:28:50.0|分类: mysql|浏览量: 1776

摘要: 测试表用户表user: 测试表密码表pwd:...

测试表用户表user:

测试表密码表pwd:

1、创建user表:

CREATE TABLE `user` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) default NULL,
  `password` varchar(255) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2、创建pwd表:
CREATE TABLE `pwd` (
  `id` int(11) NOT NULL auto_increment,
  `userid` int(11) default NULL,
  `passwd` varchar(255) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3、使用inner join 将pwd表中的passwd填入到user表中的password列(根据userid),SQL语句:

UPDATE `user` U 
INNER JOIN `pwd` P
ON P.userid=U.id 
SET U.password = P.passwd; 
4、 left join(左联接) 查询user中的信息

SELECT us.*,pw.* FROM `user` us  
LEFT JOIN pwd pw
ON pw.userid=us.id;
结果:


说明: 
left join是以User表的记录为基础的,User可以看成左表,pwd可以看成右表,left join是以左表为准的. 
换句话说,左表(User)的记录将会全部表示出来,而右表(pwd)只会显示符合搜索条件的记录(例子中为: pw.userid=us.id). 
B表记录不足的地方均为NULL. 

5、left join(左联接) 查询pwd中的信息

SELECT us.*,pw.* FROM `user` us  
RIGHT JOIN pwd pw
ON pw.userid=us.id;
结果:


说明:

和left join的结果刚好相反,这次是以右表(pwd)为基础的,user表不足的地方用NULL填充. 

6、inner join(相等联接或内联接) 

SELECT us.*,pw.* FROM `user` us  
inner JOIN pwd pw
ON pw.userid=us.id;
结果:


说明:

很明显,这里只显示出了 pw.userid=us.id的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录. 






一键分享文章

分类列表

  • • struts源码分析
  • • flink
  • • struts
  • • redis
  • • kafka
  • • ubuntu
  • • zookeeper
  • • hadoop
  • • activiti
  • • linux
  • • 成长
  • • NIO
  • • 关键词提取
  • • mysql
  • • android studio
  • • zabbix
  • • 云计算
  • • mahout
  • • jmeter
  • • hive
  • • ActiveMQ
  • • lucene
  • • MongoDB
  • • netty
  • • flume
  • • 我遇到的问题
  • • GRUB
  • • nginx
  • • 大家好的文章
  • • android
  • • tomcat
  • • Python
  • • luke
  • • android源码编译
  • • 安全
  • • MPAndroidChart
  • • swing
  • • POI
  • • powerdesigner
  • • jquery
  • • html
  • • java
  • • eclipse
  • • shell
  • • jvm
  • • highcharts
  • • 设计模式
  • • 列式数据库
  • • spring cloud
  • • docker+node.js+zookeeper构建微服务
版权所有 cookqq 感谢访问 支持开源 京ICP备15030920号
CopyRight 2015-2018 cookqq.com All Right Reserved.