博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL 表连接
阅读量:6175 次
发布时间:2019-06-21

本文共 658 字,大约阅读时间需要 2 分钟。

两表做全相乘(交叉连接)

select * from table1,table2;

返回一个全新的表,其行数为两表的行数相乘,每一行的为两表每一行的两两结合,列数为两表列数的和。
因为这种方法会生成一个大表,非常占内存(比如两张10000行的表相乘就得到1×108行的表),所以应尽量避免使用。

左连接

table1 left join table2 on [条件];

当[条件]为真时,则将table2对应的行取出并将其添加到table1对应的行上,以形成一张新表。如果table1的某行在table2中没有匹配行,则新表中该行的保留table1的数据,table2列的值均为NULL。由于建立了索引,因此效率非常快。

右连接

table1 right join table2 on [条件];

与左连接相反,保留table2的所有行,如果table2的某行在table1中没有匹配行,则新表中该行的保留table2的数据,table1列的值均为NULL。

内连接

table1 inner join table2 on [条件];

与左右连接相似,但不同的时,不会保留table1和table2没有匹配上的行(也就是左右连接的交集)。

完全连接

table1 full join table2 on [条件]; 保留左右表的所有行,不匹配的用NULL填充(也就是左右连接的并集),但mysql中不支持该语法。

转载于:https://juejin.im/post/5bec31dbf265da61171c4a6c

你可能感兴趣的文章
Web服务器学习笔记
查看>>
#420 Div2 C
查看>>
GVIM 7.2中文在线帮助的安装(转)
查看>>
Bzoj4044 Virus synthesis
查看>>
年后第一天
查看>>
java 获取控制台的输入的两个方法
查看>>
L396
查看>>
poj3078
查看>>
什么是环境变量?
查看>>
帝国cms后台集成ueditor编辑器
查看>>
WPF绑定各种数据源之xml数据源
查看>>
通过java程序调用ant build.xml配置文件中指定的target
查看>>
判断 ACdream 1202 Integer in C++
查看>>
水题 ZOJ 3875 Lunch Time
查看>>
各种排序算法的分析及java实现
查看>>
JAVA/GUI程序之记事本
查看>>
[ZT]Mac下安装Eclipse和Tomcat等
查看>>
BZOJ2595:[Wc2008]游览计划——题解(插头dp)
查看>>
Guava学习笔记:Google Guava 类库简介
查看>>
90.bower解决js的依赖管理
查看>>