多个表格查询,

笛卡尔乘积现象;表1有m行,表2 有n行。  结果有m * n行

发生原因在于没有有效的连接条件

如何避免:添加有效的连接条件

方法:分类方法

按照年代分类:sql192标准和sql199标准

功能

内链接:等值连接, 非等值连接,自连接

外连接 :左外,右外,全外

交叉连接

一般语法

SELECT 查询的列表
FROM 表1 别名1,表2 别名2
WHERE 表1.关键词= 表2.关键词;
【and 筛选条件】
【group by 分组字段】
【having 分组后的筛选】
【order by 排序ASC,DESC】

实操:首先你需要选择在两个表格中都存在的一个匹配项目, 就像是excel中的vlookup一样匹配当中的相似内容,这样才能设立连接条件

假设我有一个班级学生个人信息表(stu_info),里面有学号(stu_id),然后我有一张只有学号的期末成绩表(score_count),我需要将这两个表连接起来,显示对应名字(name)和期末成绩(score),操作如下。

SELECT name 姓名,score 期末成绩
FROM stu_info,score_count
WHERE stu_info.'stu_id'=score_count.'stu_id'
# WHERE 姓名.'stu_id'=期末成绩.'stu_id'

可以加筛选选项,或者排序判断等,任何表格的功能都是可以在这个等值查询上面实现的。

多个表的等值连接

跟两个表一样,将需要匹配的内容放在where 语句里面,并列的用and添加,可以添加多个。

非等值连接

非等值连接在于判断where语句的情况,假设有一个按照年龄区分的表格,10-20岁为小,20-35为中,35-60为老,然后我们需要匹配公司的全体员工属于哪一个范围以内的时候,可以采用在非等值连接,大致的程序思路如下。

SELECT age
FROM employees,age_count
WHERE employees BETWEEN age.low_age AND age.high_age;

自连接

自连接顾名思义就是与自己的表进行判断匹配,平时我们可能看到过excel表中间有些内容是把某个属性匹配,比如一个学校有教职员工和学生的总表,学生也有代码教职员工也有自己的编码,学生还会有一个导师编码,这里就可以匹配学生所述的导师姓名

SELECT s.all_id,s.name_id,t.all_id,t.name
FROM all_list s,all_list t
WHERE s.学生导师id = t.老师编号id
【and 筛选】
【group by 分组】
【having 分组后筛选】
【order by asc升序,desc降序】

总结1.多表连接的结果为多表的交集部分

2.n表连接,至少需要n-1个连接条件

MySQL基础---连接查询(等值连接与非等值连接)相关推荐

  1. MySQL 基础 ———— 连接查询

    引言 本篇文章承接<数据库与SQL语句>专栏,进入DQL的重要环节,可以说,这一部分的内容应该占据SQL语言的大部分使用场景. 本篇的连接查询知识,和后面的一些重要的查询知识总结,共同构成 ...

  2. MySQL 基础 ———— 子查询

    引言 承接<MySQL 基础 ---- 连接查询>,本文介绍和展示SQL中子查询的使用. 子查询是出现在其他语句中的select 语句,也称为内查询.外部的查询语句,称为主查询或外查询. ...

  3. MySQL多表连接查询——等值连接、非等值连接和自连接

    MySQL多表连接查询 1. 含义: 又称多表查询,当查询的字段来自于多个表时,就会用到连接查询 笛卡尔乘积现象: 表1 有m行,                               表2 有 ...

  4. Oracle学习笔记(三)。连接查询。等值连接,非等值连接,自连接,LEFT OUTER JOIN,RIGHT JOIN,FULL JOIN,自然连接,内连接 INNERJOIN

    文章目录 1. 什么是多表查询 2. 多表链接方式 3. 多表连接语法 3.1 语法结构 3.2 定义连接 3.3 原则 4. 等值连接-内连接 4.1 什么是等值连接 4.2 抉择矩阵 4.3 使用 ...

  5. 【MySQL】多表查询的分类1:等值连接和非等值连接

    目录 多表查询的分类1:等值连接VS非等值连接 1. 等值连接 2. 非等值连接 多表查询的分类1:等值连接VS非等值连接 1. 等值连接 等值连接指的是,多表查询语句中的连接条件使用的是等号.例如: ...

  6. 内连接(等值、非等值连接)、外连接(左外连接、右外连接、全连接)、自然连接、自连接

    目录 一.交叉连接(笛卡尔积) 二.内连接(等值.非等值连接) 三.外连接(左外连接.右外连接.全连接) 四.自然连接 五.自连接 一.交叉连接(笛卡尔积) 交叉联接返回左表中的所有行,左表中的每一行 ...

  7. MYSQL(连接查询)

    目录 连接查询 等值连接 为表起别名 添加筛选 添加分组 加排序 三表连接 非等值连接 自链接 例题 连接查询 含义: 又称多表查询,当查询的字段来自多个表时用到连接查询. 按年代分类: sql192 ...

  8. MySQL 数据库————连接查询

    目录 一.多表连接查询 1.内连接--inner join 2.左连接--left join 3.右连接--right join 二.存储过程 1.简介 2.优点 3.语法 ②.参数分类 ③.带参数的 ...

  9. MySql中左连接查询突然变得很慢

    MySql中左连接查询突然变得很慢 表结构: A表 userId,name B表 wId,userId,address A表左连接B表查询时,平时查询都非常的块,这几天突然变得很慢. 一个查询花了0. ...

最新文章

  1. c语言小程序解决生活中小问题,自己写的一个小程序 有问题帮帮忙
  2. 表的插入、更新、删除、合并操作_8_手工插入数据
  3. (转)SpringMVC学习(一)——SpringMVC介绍与入门
  4. jQuery修改页面元素的属性
  5. Java获取泛型T的类型 T.class
  6. 新手入坑 java的开发语言环境
  7. c语言乘法表只有结果,要求输出结果显示相乘的两数及乘积怎么做?
  8. 5 html 根据手机转动而转动_最全的全景照片拍摄方法合集,手机也能拍哦
  9. mysql 修改字段长度 合并语句_mysql中利用sql语句修改字段名称,字段长度等操作...
  10. C++多态的练习——编写一个计算器项目
  11. TF2.0—tf.keras.layers.Activation
  12. JAVA毕业设计河南口腔医疗机构线上服务系统计算机源码+lw文档+系统+调试部署+数据库
  13. 关于微信第三方平台$APPID$.wx.abc.com的问题
  14. 【温故知新】—— React/Redux/React-router4基础知识独立团Demo
  15. 如何在 Azure VM上挂盘(windows 和 linux)
  16. 嵌入式系统之实时系统调度算法
  17. SAP-License-3种方法帮您有效减少License许可证授权支出
  18. 局域网arp攻击_ARP局域网攻防浅析
  19. 算法手撕代码61~65
  20. 智能红外线气体分析仪器的操作与标定

热门文章

  1. 数据库mysql增删查改操作指令
  2. Nature Medicine:利用静息态fMRI功能连接定义抑郁症神经生物学亚型
  3. 12 岁学习编程,17 岁香港高中生成苹果 WWDC2020 Swift 开发者挑战赛赢家!
  4. Ubuntu 21.10 ALC294 声卡无声音、音量只能最大或静音问题的解决办法
  5. 大学生计算机应用技术自我评价,计算机应用技术本科生的自我评价
  6. 大神2年的Python学习经历撼动了整个Python编程界,都是你需要的
  7. php yac使用,php yac简单压测
  8. 跨越没有销烟的雷池 - 扫雷秘笈非完全版 (转)
  9. 2016苹果WWDC大会说了啥?
  10. 【ChatGPT】Open AI 公司CEO:Sam Altman 的创业手册—— 了解一下 ChatGPT是怎样被创造出来的?