1.数据查询时很多时候需要连表,查询出来的内容则包含2个表中的列内容,这个时候就需要用到连表,连表又分为左连接、右连接、内连接;


2.将上图中的article和category表连表查询,查询结果中包含cate_name列:

3.上图中使用左连接的方式可以完成功能,可惜美中不足的是art_id=20的那一行因为没有匹配的值则默认使用了NULL填充,这和左查询的机制有关!
注意:左查询是以左表为准(对应图中的article表),逐行在右表中进行筛选,如果有匹配到的值则正常显示,如果没有则用null填充;
同理,右查询也是同样的道理,下面语句相比左查询会正常显示server的值,但是会将匹配不到的art_id、title等使用null填充,左右查询可以相互转换!推荐实例中使用左查询,更符合人为习惯也更好理解!

  select art_id,title,author,article.cate_id,cate_namefromarticle right join category on category.cate_id=article.cate_id

4.可是如何剔除这些null值的行呢,这个时候就需要用到内连接inner join:

  select art_id,title,author,article.cate_id,cate_namefromarticle inner join category on category.cate_id=article.cate_id

iner join会提取出2张表的共同交集;

小结:数据表的意义类似于数学中的集合(set),当A表中有m列M个元素(行),B表中有n列N个元素(行),则A和B表的集合就会有M*N个元素(集合的唯一性保证);可以使用如下sql语句做实验:

select * from article,category;

两表的集合共有m+n列以及M*N个元素,因为实际中我们想要过滤那些我们不需要的元素(两表中cate_id不相等的行),所以才会用到连表查询

连表查询join使用方法详解相关推荐

  1. java 查询sql语句_java执行SQL语句实现查询的通用方法详解

    完成sql查询 并将查询结果放入vector容器,以便其他程序使用 /* * 执行sql查询语句 */ public static vector executequery(class clazz, s ...

  2. mysql 不通过关联查询表_mysql中多表不关联查询的实现方法详解

    下面小编就为大家带来一篇浅谈mysql中多表不关联查询的实现方法.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 大家在使用MySQL查询时正常是直接一个表的查询,要不然 ...

  3. JavaScript表单序列化的方法详解

    本文介绍下,在javascript中实现表单序列化的方法,通过实例加深理解,有需要的朋友参考下吧. 在JavaScript中,可以利用表单字段的type属性,连同name和value属性一起实现对表单 ...

  4. Jquery ajax提交表单几种方法详解

    [导读] 在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$( 表单ID) serialize();就行了,下面我来介绍两个提交表单数据的 ...

  5. Oracle中多表联合更新处理方法详解

    ORACLE中多表关联更新与SQL Server和MYSQL的语法稍有不同,现将ORACLE中多表关联更新的几种方法处理如下: 一.创建测试表和添加测试数据 CREATE TABLE t_test01 ...

  6. python pymysql模块 链接mysql 遍历查询结果的方法 详解

    目录 python链接mysql的方法 遍历字段获取值 完整代码 python链接mysql的方法 import json import pymysql def connect_mysql():con ...

  7. mysql ibd文件还原_MySQL单表ibd文件恢复方法详解

    前言: 随着innodb的普及,innobackup也成为了主流备份方式.物理备份对于新建slave,全库恢复的需求都能从容应对. 但当面临单表数据误删,或者单表误drop的情况,如果使用物理全备进行 ...

  8. java 修改mysql数据库表结构_MYSQL数据库表结构优化方法详解

    摘要:这篇MySQL栏目下的"MYSQL数据库表结构优化方法详解",介绍的技术点是"mysql数据库表结构.MySQL数据库.数据库表结构.MySQL.据库表结构.数据库 ...

  9. java多线程中的join方法详解

    java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...

最新文章

  1. [摘录]第8章 与非美国人谈判的技巧
  2. Apache Ant安装 验证
  3. Linux文件权限(3)
  4. Codeforces Round #476 (Div. 2) B. Battleship
  5. 什么是命名空间 为什么C++需要使用命名空间
  6. 你应该要掌握的7种回归分析方法
  7. [PYTHON] 深度解析copy.copy() 与 copy.deepcopy()
  8. [转载] javascript入门_WebAssembly入门-仅使用14行JavaScript
  9. 李洪强经典面试题32
  10. 安装设备驱动程序Android,手机adb驱动安装(Universal Adb Driver)
  11. SmallPDF安装
  12. 怎么更改计算机网上邻居,如何更换登入网上邻居帐号
  13. 中国内蒙古医企在“吴哥国际医院”开展“千人一对一国际医疗捐助”
  14. Python学习笔记-2017.5.4thon学习笔记-2017.5.19
  15. mybatis系列一:入门篇
  16. nowcoder20619 禁书目录
  17. 向无所不能逼近的算法 逻辑与算法之一
  18. 降临《你一生的故事》
  19. ”从生命起源到智慧宇宙“全文(英文论文)
  20. 基于springboot高考填报志愿综合参考系统设计与实现-计算机毕业设计源码+LW文档

热门文章

  1. 【Python】Python获取当前是否是股市交易日
  2. 计算机上海专业排名,2019上海软科世界一流学科排名计算机科学与工程专业排名斯坦福大学排名第2...
  3. YOLOv5 Detect 参数说明
  4. 利用 NSS Key Log 解密 HTTPS
  5. 计算机毕业设计asp.net校园足球赛事管理系统(源码+系统+mysql数据库+Lw文档)
  6. 国外主流广告联盟大推荐
  7. 袁国宝:左晖走了,留下什么?
  8. 初学者如何快速开发大数据分析平台
  9. Unity BIM模型导入调研
  10. 可以相应中断cpu操作中置标志