mysql sql99语法 内连接等值连接

#案例:查询员工名、部门名

SELECT
    last_name,department_name
FROM
    employees e
INNER JOIN
    departments d
ON
    e.`department_id`=d.`department_id`

#案例:查询名字中包含e的员工名和工种名(筛选)

SELECT
    last_name,job_title
FROM
    employees e
INNER JOIN
    jobs s
ON
    e.`job_id`=s.job_id
WHERE
    e.`last_name` LIKE ‘%a%‘ ;

#案例:查询部门个数大于3的城市名和部门个数

SELECT
    city,COUNT(*)
FROM
    departments d
INNER JOIN
    locations l
ON
    d.`location_id`=l.`location_id`
GROUP BY
    city
HAVING
    COUNT(*)>3;

#查询:员工名、部门名、工种名,并按部门名排序(三表连接)

SELECT
    last_name,department_name,job_title
FROM
    employees e
INNER JOIN
    departments d    #内连接的表得和from的表有连接条件
ON
    e.`department_id`=d.department_id
INNER JOIN

    jobs j
ON
    j.job_id=e.job_id
ORDER BY
    department_name DESC;

#案例:查询哪个部门的员工个数>3的部门名和员工个数,并按个数排序(添加排序)

SELECT
    COUNT(*),department_name
FROM
    departments d
INNER JOIN
    employees e
ON
    d.`department_id`=e.`department_id`
GROUP BY
    department_name
HAVING
    COUNT(*)>3
ORDER BY
    COUNT(*) DESC;

原文地址:https://blog.51cto.com/14437184/2437907

时间: 2024-10-28 19:49:26

mysql sql99语法 内连接等值连接的相关文章

mysql sql99语法 内连接非等值连接

#案例:查询员工的工资级别 SELECT salary,grade_level FROM employees e JOIN job_grades g ON e.`salary` BETWEEN g.`lowest_sal` AND g.`lowest_sal`; #案例:查询每个工资级别的个数,并且按级别降序 SELECT COUNT(*),grade_level FROM job_grades j JOIN employees e ON e.`salary` BETWEEN j.`lowest

mysql sql99语法 外连接

外连接:内连接结果+主表中有而从表没有的结果左外连接:left join 左边的是主表右外连接:right join 右边的是主表 #案例:查询男朋友不在男神表的女神名#左连接 SELECT b.name FROM beauty b LEFT OUTER JOIN boys bo ON b.boyfriend_id=bo.id WHERE bo.`id` IS NULL; #右连接 SELECT b.name FROM boys bo RIGHT OUTER JOIN beauty b ON b

mysql 左,右,内连接

左右连接 全相乘方法(效率很低) mysql> select * from test10; +------+-------+ | id   | sname | +------+-------+ |    1 | 云彩     | |    2 | 月亮      | |    3 | 星星      | +------+-------+ 3 rows in set (0.00 sec) mysql> select * from test11; +--------+-------+ | cat_

【Mysql】利用内连接与嵌套查询实现多表查询,主键、外键的基本概念

虽然多表查询,在计算机的必须课,数据库,里面已经大讲特讲,但是这个难点很多老师都没有讲深讲透.跟你净扯一大堆,左连接右连接的东西,让人一头雾水.老师把所有多表查询的方法告诉你,但是到头来一种方法都没有掌握.其实只要记住一种就够了,学会多表查询,除了在你考数据库能够拿到很高分之外,到了实际应用,很多地方都用到多表查询.比如论坛工程中分析回帖发帖的关系,提供该用户发了什么帖子的功能.比如信息管理系统中,分析班级与学生.老师之间的关系,提供该班级中存在多少学生的查询功能.就需要用到多表查询,你总不能把

MySQL 关联查询 内连接

内连接    [INNER| CROSS] JOIN无条件内连接:无条件内连接,又名交叉连接/笛卡尔连接第一张表种的每一项会和另一张表的每一项依次组合#例:mysql>  select  *  from  student inner join  department;有条件内连接:在无条件的内连接基础上,加上一个ON子句当连接的时候,筛选出那些有实际意义的记录行来进行拼接#例:mysql> select   *  from   student  inner join  department  

07_MySQL DQL_多表查询_等值内连接

#6:连接查询/*含义:多表查询,当查询的字段来自多个表 笛卡尔积: 表1,m行:表2,n行: 表1,表2 = m*n行发生原因:表1的每行和表2的n行拼接,形成n行,最终得到m*n行如何避免:增加连接条件 连接查询的分类: 按年代分类: sql92标准[mysql只支持该标准的内连接,一部分外连接] sql99标准[推荐]mysql支持内连接 外连接(左右连接) 交叉连接 按功能分类: 内连接 等值连接 非等值连接 自连接 外连接 左连接 右连接 全连接 交叉连接*/USE girls; #

MSSQL 详解SQL Server连接(内连接、外连接、交叉连接)

在查询多个表时,我们经常会用“连接查询”.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 什么是连接查询呢? 概念:根据两个表或多个表的列之间的关系,从这些表中查询数据. 目的:实现多个表查询操作. 知道了连接查询的概念之后,什么时候用连接查询呢? 一般是用作关联两张或两张以上的数据表时用的.看起来有点抽象,我们举个例子,做两张表:学生表(T_student)和班级表(T_class) 1 --创建DB 2 --filename修改为自己电脑上MSSQL存储的位置

SQL Fundamentals || 多表查询(内连接,外连接(LEFT|RIGHT|FULL OUTER JOIN),自身关联,ON,USING,集合运算UNION)

一.多表查询基本语法 在进行多表连接查询的时候,由于数据库内部的处理机制,会产生一些“无用”的数据,而这些数据就称为笛卡尔积. 多表查询时可以利用等值关联字段消除笛卡尔积 多表查询之中,每当增加一个关联表都需要设置消除笛卡尔积的条件 分析过程很重要: 确定所需要的数据表 确定已知的关联字段: 按照SQL语句的执行步骤编写:FROM,WHERE,SELECT,ORDER BY (由于SELECT是在WHERE子句之后执行,所以SELECT子句所定义的别名WHERE不可以直接使用) (由于SELEC

SQL - 内连接与外连接

PDF下载地址:SQL-内连接与外连接.pdf 连接查询在关系型数据库中经常用到,是多表联合查询的基础. 主要包含:内连接,外连接,交叉连接. SQL - 内连接与外连接 内连接 等值连接 不等值连接 自然连接 外连接 左连接 右连接 全连接 交叉连接 内连接 内连接又分为等值连接,不等值连接,自然连接. 连接查询中使用的比较运算符有:=, >, <, <>, >=, <=, !>, !< 等值连接 等值连接使用”=”来进行比较运算. 请看下面的例子: st