目录

连接查询

等值连接

为表起别名

添加筛选

添加分组

加排序

三表连接

非等值连接

自链接

例题


连接查询

含义:

又称多表查询,当查询的字段来自多个表时用到连接查询。

按年代分类:

sql192标准,sql199标准(推荐)

按功能分类:

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

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

3.交叉连接

等值连接

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

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

3.多表的顺序没有要求

4.一般需要为表起别名

#等值连接
#查询员工名和对应的部门名
SELECT last_name 员工名,department_name 部门名
FROM employees,departments
WHERE employees.`department_id`=departments.`department_id`;

为表起别名

作用:

提高语言的简洁度

区分多个重名字段

注意:如果为表起了别名,查询的字段不能使用原来表的名字。

添加筛选

#添加筛选
#案例:查询有奖金的员工名,部门名
SELECT last_name,department_name
FROM employees e,departments d
WHERE e.`department_id`=d.`department_id`
AND e.`commission_pct`IS NOT NULL;#案例:查询城市名中第二个字母为o的城市名和部门名
SELECT city,department_name
FROM locations l,departments d
WHERE l.`location_id`=d.`location_id`
AND l.`city`LIKE '_o%';

添加分组

#添加分组
#案例:查询每个城市的部门个数
SELECT COUNT(*),city
FROM departments d,locations l
WHERE d.`location_id`=l.`location_id`
GROUP BY city;#案例:查询有奖金有奖金的每个部门的
#部门名和该部门的最低工资
#和部门的领导编号
SELECT d.department_name,MIN(salary),d.manager_id
FROM departments d,employees e
WHERE d.`department_id`=e.`department_id`
AND e.`commission_pct`IS NOT NULL
GROUP BY department_name;

加排序

#加排序
#案例:查询每个工种的工种名和员工个数
#按员工个数排序
SELECT job_title,COUNT(*)
FROM jobs j,employees e
WHERE j.`job_id`=e.`job_id`
GROUP BY job_title
ORDER BY COUNT(*);

三表连接

#三表连接
#案例:查询员工名,部门名和所在的城市
SELECT last_name,department_name,city
FROM employees e,departments d,locations l
WHERE e.`department_id`=d.`department_id`
AND d.`location_id`=l.`location_id`;

非等值连接

#非等值连接
#案例:查询员工的工资和工资级别
SELECT salary,grade_level
FROM employees e,job_grades g
WHERE salary BETWEEN g.`lowest_sal`AND g.`highest_sal`;

所用到的job_grades表

自链接

#自链接
#案例:查询员工名和上级名称
SELECT e.last_name  员工名,e.employee_id 员工编号,
m.last_name 上级名,m.employee_id 上级编号
FROM employees e,employees m
WHERE e.`manager_id`=m.`employee_id`;

例题

#1.显示所有员工的姓名,部门号和部门名称
SELECT last_name 姓名,e.department_id 部门号,
department_name 部门名称
FROM employees e,departments d
WHERE e.`department_id`=d.`department_id`;#2.查询90号部门员工的工种号和位置编号
SELECT job_id,location_id
FROM employees e,departments d
WHERE e.`department_id`=d.`department_id`
AND e.department_id=90;#3.查询每个工种,每个部门的部门名,工种名和最低工资
SELECT department_name 部门名,job_title 工种名,
MIN(salary) 最低工资
FROM departments d,jobs j,employees e
WHERE d.`department_id`=e.`department_id`
AND e.`job_id`=j.`job_id`
GROUP BY j.`job_id`,d.`department_id`;#4.查询每个国家下的部门个数>2的国家编号
SELECT country_id 国家编号,COUNT(*) 部门个数
FROM departments d,locations l
WHERE d.`location_id`=l.`location_id`
GROUP BY l.`country_id`
HAVING COUNT(*)>2;

MYSQL(连接查询)相关推荐

  1. MySQL外键关联(一对多)MySQL连接查询

    MySQL外键关联(一对多) 外键说明 什么是外键? 1)表A中有字段(如身份证号)做了主键,表B中也有这个字段(身份证号),这里的身份证号一定来自表A同样字段里的内容,但再B表中身份证号对应id可以 ...

  2. 二、MySQL连接查询学习笔记(多表连接查询:内连接,外连接,交叉连接详解)

    MySQL连接查询(多表连接查询:内连接,外连接,交叉连接详解) 6:多表连接查询 笛卡尔乘积:如果连接条件省略或无效则会出现 解决办法:添加上连接条件 连接查询的分类: 1.按年代分类:1)sql ...

  3. mysql连接查询on_MySql 连接查询中 on 和 where 的区别

    MySql 连接查询时,on 后面跟的是连接条件,再跟 and 关键就可以继续加过滤条件,这样看来是不是可以免用 where 增加过滤条件了呢?开始我也是这样以为的(老师是这么教的,且使用 on 的情 ...

  4. Mysql连接查询主要分为三种:内连接、外连接、交叉连接

    Mysql 连接查询主要分为三种:内连接.外连接.交叉连接 内连接 使用比较运算符(包括=.>.<.<>.>=.<=.!>和!<)进行表间的比较操作,查 ...

  5. Mysql连接查询详解

    前言 记得刚工作几年的时候,就写了一篇关于Mysql连接查询的博客文章,里面简单的认为先对关联表的记录进行笛卡尔积,然后再根据where条件过滤,现在看来有点贻笑大方了.正好最近看了<mysql ...

  6. MySQL连接查询(内连接,外连接,全连接)

    对比分析MySQL连接查询(内连接,外连接,全连接) 内连接 等值连接 非等值连接 ==自连接== 外连接 左外连接 右外连接 全外连接 交叉连接 首先建三个数据表 sql文件下载 https://w ...

  7. MySQL连接查询 内连接和外连接的区别

    MySQL 连接查询 @ sunRainAmazing 1.使用连接查询的场景 将多张表进行记录的连接查询(按照某个字段指定的条件进行数据的拼接):进行数据的拼接(两张表的内容显示在一个结果表中 使用 ...

  8. MySQL连接查询——MySQL 基础查询你会了吗?

    前言: 由于大一学习数据库不扎实,学到后面有点吃力,所以回过头来认真学习一边,写一些学习总结,提醒自己.也要告诫读者,把基础打扎实.读者觉得有用的话可以收藏点赞哦! 上一篇:MySQL函数查询--My ...

  9. MySql 连接查询中 on 和 where 的区别

    大家可以先看MySQL:left join 避坑指南 看过之后再接着看下面 在多表查询时,ON和where都表示筛选条件,on先执行,where后执行. on 后跟连接条件,然后再加的筛选条件只针对关 ...

  10. MySQL连接查询-笛卡尔乘积

    MySQL连接查询 前言 一.笛卡尔积 二.SQL92(支持内连接) 三.SQL99(内.外.交叉) 1.内连接 2.外连接 2.1.左右外连接 2.2.全外连接 3.交叉连接(MySQL支持) 总结 ...

最新文章

  1. LLVM Backend技术
  2. Navicat Premium
  3. PL/SQL Developer 和 instantclient客户端快速安装配置(图文)
  4. 通俗讲解和学习SQL
  5. Android 自定义属性时TypedArray的使用
  6. [转]JavaScript构造函数及原型对象
  7. LeetCode021 Merge Two Sorted Listss C语言
  8. Telnet三步完成连接(简短版)
  9. kubeflow fairing详解
  10. [转]给新同学的礼仪建议
  11. Atitit it法学论 uke协会it刑法attilax总结 目录 1. 法学plus 1 1.1. 替换表 1 2. 第一章 刑法概说 1 2.1. 财产 1 3. Line 65: 第四章 犯
  12. 如何防止CSRF攻击?
  13. 打开Internet信息服务及IIS管理器
  14. html QQ空间留言版,qq空间留言
  15. CTF-MISC基础-压缩包隐写总结
  16. 程序员试用期提离职被领导起诉
  17. Linux系统上没有scp命令,Linux scp命令没反应
  18. 由内而外全面造就自己(一)
  19. Cocos Shader入门基础七:一文彻底读懂深度图。
  20. Havel-Hakimi定理(判断一个度序列是否可图)

热门文章

  1. git更新失败出现向下箭头
  2. Webots+ROS学习记录(4)——六轮全地形移动机器人
  3. AOP(面向切面)原理及使用
  4. 什么叫MD5,MD5通常做什么用处,为什么MD5不可逆,用做密码加密的时候仍然可能会被解密?
  5. Linux平台上文件同步——rsync+inotify之定时同步
  6. 验证码国际接口JAVA语言对接示例
  7. linux cadaver 命令,screen命令用法与cadaver
  8. 动态规划设计方法详解最长递增子序列
  9. 教你一步一步实现图标无缝变形切换
  10. 如何选择统计检验方法