广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中的连接查询(等值连接)
  • 679
分享到

MySQL中的连接查询(等值连接)

MySQL连接查询MySQL等值连接MySQL中的查询 2022-07-20 12:07:24 679人浏览 泡泡鱼
摘要

目录1. 笛卡尔乘积2. 分类(1)按年代分类(2)按功能分类3. 等值连接4. 总结1. 笛卡尔乘积 表1有m行数据,表2有n行数据,查询结果有m*n行数据。 2. 分类 (1)按年代分类 sql92标准:仅支持内连接

1. 笛卡尔乘积

表1有m行数据,表2有n行数据,查询结果有m*n行数据。

2. 分类

(1)按年代分类

sql92标准:仅支持内连接

sql99标准(推荐):支持内连接、外连接(左外连接和右外连接)、交叉连接

(2)按功能分类

内连接:等值连接、非等值连接、自连接

外连接:左外连接、右外连接、全外连接

交叉连接

3. 等值连接

(1)查询女生名及其对应的男朋友名

SELECT
  girlname,
  boyname
FROM
  boys,
  girls
WHERE
  girls.boyfriend_id=boys.girlfriend_id;

(2)查询员工名(last_name)和对应的部门名(department_name)-------------(根据关联的id查询)

SELECT
  last_name,
  department_name
FROM
  JDSC,
  SNSC
WHERE
  JDSC.`id`=SNSC.`id`;

(3)查询员工名(last_name)、工种号(job_id)、工种名(job_title) (员工表:JDSC  工作表:JOBSC)------为表起别名,提升简洁度,避免歧义

#"e.job_id"是为了避免歧义
SELECT
  last_name,
  e.job_id,
  job_title
FROM
  ESC e,
  JOBSC j
WHERE
  e.`job_id`=j.`job_id`;

注意:

如果为表起了别名,则查询的字段不能使用原来的表名去限定。

上述两个表的顺序可互换

(4)查询有奖金的员工名、部门名

#员工名:last_name
#部门名:department_name
#奖金率:commissiom_pct
SELECT
  last_name,
  department_name,
  commissiom_pct
FROM
  employees e,
  department d
WHERE
  e.`department_id`=d.`department_id`
AND
  e.`commissiom_pct` IS NOT NULL;

(5)分组查询——查询每个城市的部门个数

#城市分组表名:city
#部门分组表名:departments
SELECT
  COUNT(*) 个数,
  city
FROM
  departments d,
  locations l
WHERE
  d.`location_id`=l.`location_id`
GROUP BY
  city;

(6)排序——查询每个工种的工种名和员工个数,并按员工个数降序

SELECT
  job_title,
  COUNT(*)
FROM
  emloyees e,
  jobs j
WHERE
  e.`job_id`=j.`job_id`
GROUP BY
  job_title
ORDER BY
  COUNT(*) DESC;

(7)三表连接——查询员工名、部门名和所在的城市

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`
AND
  city LIKE 's%';

4. 总结

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

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

3)多表的顺序没有要求

4)一般需要为表起别名

5)可以搭配所有子句使用,例如排序、分组、筛选

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中的连接查询(等值连接)

本文链接: https://www.lsjlt.com/news/33409.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作