Mysql INNER,LEFT ,RIGHT join的使用
2016-03-08 14:56
691 查看
JOIN 按照功能大致分为如下三类:
INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
INNER JOIN
首先,这样是寻找两个表之间的一个关联的字段,然后就能够得到两个表的功用数据。
等同于
用查出来的a.UserId查询出来的list,做一个循环,将主键带入到另一个表中查询出数据
这样也能达到一样的效果。
同样等价于:
表示,将一个表里面查出来的数据作为一张临时的表,然后和另一张表进行外键的链接。
同样等价于这里所谓的INNER JOIN内链接,
LEFT JOIN(左链接)
MySQL LEFT JOIN 会读取左边数据表的全部数据,即便右边表无对应数据
INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
INNER JOIN
首先,这样是寻找两个表之间的一个关联的字段,然后就能够得到两个表的功用数据。
SELECT a.UserId, a.UserNo, b.ty_name FROM user a, type b WHERE a.UserId = b.ty_id;
等同于
select a.UserId,a.UserNo FROM user a
用查出来的a.UserId查询出来的list,做一个循环,将主键带入到另一个表中查询出数据
SELECT b.ty_name from type b where b.ty_id = ?
这样也能达到一样的效果。
同样等价于:
SELECT t1.UserNo,b.ty_name FROM (select a.UserId,a.UserNo FROM user a) t1 ,type b where t1.UserId = b.ty_id
表示,将一个表里面查出来的数据作为一张临时的表,然后和另一张表进行外键的链接。
同样等价于这里所谓的INNER JOIN内链接,
SELECT a.UserId, a.UserNo, b.ty_name FROM user a INNER JOIN type b ON a.UserId = b.ty_id;
LEFT JOIN(左链接)
SELECT a.UserId, a.UserNo, b.ty_name FROM user a LEFT JOIN type b ON a.UserId = b.ty_id;
MySQL LEFT JOIN 会读取左边数据表的全部数据,即便右边表无对应数据
RIGHT JOIN 会读取右边数据表的全部数据,即便左边边表无对应数据
SELECT a.UserId, a.UserNo, b.ty_name FROM user a right JOIN type b ON a.UserId = b.ty_id;
相关文章推荐
- mysql 创建测试大表
- Mysql存储过程中实现合服
- MySQL5.7.11 重置 root 密码
- mysql存储过程详解
- mysql 常用操作(整理)
- mysql 常用操作(整理)
- C#连接mysql数据库学习
- mysql 子查询 将最外表带入子查询内2层 的另一种解决方法
- MySQL基本命令 (一)
- MySQL 慢查询日志分析及可视化结果
- mysql远程连接命令
- mysql存储过程详解
- 在Ubuntu上部署开源博客系统Blog_mini 推荐
- 远程连接到vultr vps的mysql服务器
- 在Ubuntu上使用apt-get安装MySQL+安全优化
- MySQL 数据库性能优化之SQL优化
- PowerDesigner连接MySQL,建立逆向工程图解
- mysql创建存储过程
- Mysql 文件配置(my.ini)
- mysql慢查询日志分析