内联,外联,全联结,交叉联结
2015-12-01 11:51
483 查看
内联:(只显示两边同时符合子句条件的条目)
select id,user_name.name,user_info.age,user_info.sex from user_name inner join user_info
on user_name.name = user_info.name;
相当于:
select
id,user_name.name,user_info.age,user_info.sex from user_name join user_info
on user_name.name = user_info.name;
相当于:
select
id,user_name.name,user_info.age,user_info.sex from user_name, user_info where user_name.name = user_info.name;
即:inner join 可以使用 join 或 "." 来替代(内联语句中的on也可以使用where来替换,但如果是外联的语句不能使用where来替换,但可以在后面添加where 约束)
外联:
左联:(显示左边所有条目,右边没有匹配的则使用null补全)
select
id,user_name.name,user_info.age,user_info.sex from user_name left join user_info
on user_name.name = user_info.name;
右联:(显示右边所有条目,左边没有匹配的则使用null补全)
select id,user_name.name,user_info.age,user_info.sex
from user_name right join user_info on user_name.name = user_info.name;
[b][b]全联结:(相当于左联结和有链接的合集,mysql有些版本不支持)
[/b][/b]
可以使用:
select * from A left join B on A.id=B.id
union
select * from A right join B on A.id=B.id
替代
[b]交叉联结:(相当于内联去掉限制子句,显示两张表的笛卡尔积)
[/b]
select id,user_name.name,user_info.age,user_info.sex from user_name join user_info;
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复