连表查询join使用方法详解
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使用方法详解相关推荐
- java 查询sql语句_java执行SQL语句实现查询的通用方法详解
完成sql查询 并将查询结果放入vector容器,以便其他程序使用 /* * 执行sql查询语句 */ public static vector executequery(class clazz, s ...
- mysql 不通过关联查询表_mysql中多表不关联查询的实现方法详解
下面小编就为大家带来一篇浅谈mysql中多表不关联查询的实现方法.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 大家在使用MySQL查询时正常是直接一个表的查询,要不然 ...
- JavaScript表单序列化的方法详解
本文介绍下,在javascript中实现表单序列化的方法,通过实例加深理解,有需要的朋友参考下吧. 在JavaScript中,可以利用表单字段的type属性,连同name和value属性一起实现对表单 ...
- Jquery ajax提交表单几种方法详解
[导读] 在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$( 表单ID) serialize();就行了,下面我来介绍两个提交表单数据的 ...
- Oracle中多表联合更新处理方法详解
ORACLE中多表关联更新与SQL Server和MYSQL的语法稍有不同,现将ORACLE中多表关联更新的几种方法处理如下: 一.创建测试表和添加测试数据 CREATE TABLE t_test01 ...
- python pymysql模块 链接mysql 遍历查询结果的方法 详解
目录 python链接mysql的方法 遍历字段获取值 完整代码 python链接mysql的方法 import json import pymysql def connect_mysql():con ...
- mysql ibd文件还原_MySQL单表ibd文件恢复方法详解
前言: 随着innodb的普及,innobackup也成为了主流备份方式.物理备份对于新建slave,全库恢复的需求都能从容应对. 但当面临单表数据误删,或者单表误drop的情况,如果使用物理全备进行 ...
- java 修改mysql数据库表结构_MYSQL数据库表结构优化方法详解
摘要:这篇MySQL栏目下的"MYSQL数据库表结构优化方法详解",介绍的技术点是"mysql数据库表结构.MySQL数据库.数据库表结构.MySQL.据库表结构.数据库 ...
- java多线程中的join方法详解
java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...
最新文章
- [摘录]第8章 与非美国人谈判的技巧
- Apache Ant安装 验证
- Linux文件权限(3)
- Codeforces Round #476 (Div. 2) B. Battleship
- 什么是命名空间 为什么C++需要使用命名空间
- 你应该要掌握的7种回归分析方法
- [PYTHON] 深度解析copy.copy() 与 copy.deepcopy()
- [转载] javascript入门_WebAssembly入门-仅使用14行JavaScript
- 李洪强经典面试题32
- 安装设备驱动程序Android,手机adb驱动安装(Universal Adb Driver)
- SmallPDF安装
- 怎么更改计算机网上邻居,如何更换登入网上邻居帐号
- 中国内蒙古医企在“吴哥国际医院”开展“千人一对一国际医疗捐助”
- Python学习笔记-2017.5.4thon学习笔记-2017.5.19
- mybatis系列一:入门篇
- nowcoder20619 禁书目录
- 向无所不能逼近的算法 逻辑与算法之一
- 降临《你一生的故事》
- ”从生命起源到智慧宇宙“全文(英文论文)
- 基于springboot高考填报志愿综合参考系统设计与实现-计算机毕业设计源码+LW文档