首先我们来创建两个数据表:

结构:

我们用内连接来查看一下:

select *  from test1 join  test2 on test1.aid=test2.aid;

由于内连接是等值连接,所以结果是显示左右表中匹配的数据

再用左连接查看:

可以看到,左连接先取出test1的所有数据,再加上与test2和test1匹配的数据,如果左连接的话,一旦aid不相同,那么就会整行数据都显示NULL

至于右连接,实际上和左连接类似,只是参照表不同

另外,left  outer和left  的结果是一样的,假如输入

select  *  from  test1  left  outer  join  test2  on  test1.aid=test2.aid;

结果也是和left的一样。除了返回符合连接条件的结果之外,还需要显示左表中不符合连接条件的数据列,相对应使用NULL对应

交叉连接

select  *  from  test1  cross  join  test2;

和下面等效:

select a.*,b.* from test1 a,test2 b a.aid=b.aid;

结果就是两个表相乘

这样一看,好像交叉连接的意义不大,但是交叉连接可以用在行显示转换成列显示

全连接

full  join或full outer  join

全连接就是在匹配值的基础上将左右表的未匹配数据都加上

select  *  from test1  full join test2  on  test1.aid=test2.aid;

但是你会发现这样输入之后会报错,原因在于MySQL中并不支持full  join,那么怎么办呢?

等效的写法是:

select  * from test1  left  join  test2  on  test1.aid=test2.aid

union

select  * from  test1  right  join  test2  on  test1.aid=test2.aid;

自然连接

nacture  join

要求两个表中进行比较的必须是相同的属性列,不需要添加连接条件,并且在结果中消除重复的属性列

最新文章

  1. Log Parser 2.2 分析 IIS 日志
  2. 【海洋女神原创】How to: Installshield做安装包时如何添加文件
  3. java多线程详解(4)-多线程同步技术与lock
  4. Tableau:数据可视化之急速BI
  5. [异常解决] MPU6050启动异常读出陀螺仪和加速度计的值全为0的解决办法
  6. 不可或缺 Windows Native (13) - C++: 标准输入, 标准输出, 字符串内存流
  7. 工具介绍 - NimbleText
  8. nginx配置多域名映射方法(本地hosts)
  9. 讨论贴:在sp_executesql 中生成的临时表的可见性
  10. MySQL表分区
  11. Json(2)-DataContractJsonSerializer
  12. MySQL之事务处理、存储过程
  13. 【转】处理新版Chrome书签、菜单字体不清晰
  14. 小白到大神,Python 密集知识点汇总
  15. vue中添加title中的小图标
  16. SpringBoot-06:SpringBoot增删改查一套完整的考试案例
  17. Kafka文件存储机制及offset存取
  18. 不存在具有键“test”的“IEnumerable<SelectListItem>”类型的 ViewData 项。
  19. 【转载】Qt中图像的显示与基本操作
  20. 监督学习——决策树理论与实践(下):回归决策树(CART)

热门文章

  1. myeclipse和ecplise中安装git插件的问题
  2. jQuery之过滤元素
  3. webgl学习笔记三-平移旋转缩放
  4. MySQL---索引算法B+/B-树原理(二)
  5. Building microservices with ASP.NET Core (without MVC)(转)
  6. C# WebBrowser控件模拟登录
  7. DIH增量、定时导入并检索数据--转载
  8. [三]SpringBoot 之 热部署
  9. Closest Number in Sorted Array
  10. The meterprter basic commonds