20、MySQL的高级联结查询,非内联结

MySQL Select 查询语句详解及高级用法 MySQL是一个开源的关系型数据库管理系统,支持多种操作语言,其中最基础、最常用的命令之一就是SELECT语句。在本篇文章中,这里将详细介绍MySQL SELECT语句的各个方面,从最基本的查询语句,到更高级的技巧和功能。 阅读详情

1、自联结语句

主要用途: 树形结构的应用, mid

传统模式

mysql> select * from products where prod_id in (select prod_id from products where vend_id = '1003');
+---------+---------+----------------+------------+-------------------------------------------------+
| prod_id | vend_id | prod_name      | prod_price | prod_desc                                       |
+---------+---------+----------------+------------+-------------------------------------------------+
| DTNTR   |    1003 | Detonator      | 13.00      | Detonator (plunger powered), fuses not included |
| FB      |    1003 | Bird seed      | 10.00      | Large bag (suitable for road runners)           |
| FC      |    1003 | Carrots        | 2.50       | Carrots (rabbit hunting season only)            |
| SAFE    |    1003 | Safe           | 50.00      | Safe with combination lock                      |
| SLING   |    1003 | Sling          | 4.49       | Sling, one size fits all                        |
| TNT1    |    1003 | TNT (1 stick)  | 2.50       | TNT, red, single stick                          |
| TNT2    |    1003 | TNT (5 sticks) | 10.00      | TNT, red, pack of 10 sticks                     |
+---------+---------+----------------+------------+-------------------------------------------------+

自连接模式

mysql> select p1.prod_id, p1.prod_name from products p1, products p2 where p1.prod_id = p2.prod_id and p2.vend_id = '1003';
+---------+----------------+
| prod_id | prod_name      |
+---------+----------------+
| DTNTR   | Detonator      |
| FB      | Bird seed      |
| FC      | Carrots        |
| SAFE    | Safe           |
| SLING   | Sling          |
| TNT1    | TNT (1 stick)  |
| TNT2    | TNT (5 sticks) |
+---------+----------------+

2、自然连接 数据压测、评估 100 X 1000

mysql> select p1.prod_id, p1.prod_name from products p1, products p2 where p2.vend_id = '1003';
+---------+----------------+
| prod_id | prod_name      |
+---------+----------------+
| ANV01   | .5 ton anvil   |
| ANV01   | .5 ton anvil   |
| ANV01   | .5 ton anvil   |
| ANV01   | .5 ton anvil   |
| ANV01   | .5 ton anvil   |
| ANV01   | .5 ton anvil   |
| ANV01   | .5 ton anvil   |
| ANV02   | 1 ton anvil    |
| ANV02   | 1 ton anvil    |
| ANV02   | 1 ton anvil    |
| ANV02   | 1 ton anvil    |
| ANV02   | 1 ton anvil    |
| ANV02   | 1 ton anvil    |
| ANV02   | 1 ton anvil    |
| ANV03   | 2 ton anvil    |
| ANV03   | 2 ton anvil    |
| ANV03   | 2 ton anvil    |
| ANV03   | 2 ton anvil    |
| ANV03   | 2 ton anvil    |
| ANV03   | 2 ton anvil    |
| ANV03   | 2 ton anvil    |
| DTNTR   | Detonator      |
| DTNTR   | Detonator      |
| DTNTR   | Detonator      |
| DTNTR   | Detonator      |
| DTNTR   | Detonator      |
| DTNTR   | Detonator      |
| DTNTR   | Detonator      |
| FB      | Bird seed      |
| FB      | Bird seed      |
| FB      | Bird seed      |
| FB      | Bird seed      |
| FB      | Bird seed      |
| FB      | Bird seed      |
| FB      | Bird seed      |
| FC      | Carrots        |
| FC      | Carrots        |
| FC      | Carrots        |
| FC      | Carrots        |
| FC      | Carrots        |
| FC      | Carrots        |
| FC      | Carrots        |
| FU1     | Fuses          |
| FU1     | Fuses          |
| FU1     | Fuses          |
| FU1     | Fuses          |
| FU1     | Fuses          |
| FU1     | Fuses          |
| FU1     | Fuses          |
| JP1000  | JetPack 1000   |
| JP1000  | JetPack 1000   |
| JP1000  | JetPack 1000   |
| JP1000  | JetPack 1000   |
| JP1000  | JetPack 1000   |
| JP1000  | JetPack 1000   |
| JP1000  | JetPack 1000   |
| JP2000  | JetPack 2000   |
| JP2000  | JetPack 2000   |
| JP2000  | JetPack 2000   |
| JP2000  | JetPack 2000   |
| JP2000  | JetPack 2000   |
| JP2000  | JetPack 2000   |
| JP2000  | JetPack 2000   |
| OL1     | Oil can        |
| OL1     | Oil can        |
| OL1     | Oil can        |
| OL1     | Oil can        |
| OL1     | Oil can        |
| OL1     | Oil can        |
| OL1     | Oil can        |
| SAFE    | Safe           |
| SAFE    | Safe           |
| SAFE    | Safe           |
| SAFE    | Safe           |
| SAFE    | Safe           |
| SAFE    | Safe           |
| SAFE    | Safe           |
| SLING   | Sling          |
| SLING   | Sling          |
| SLING   | Sling          |
| SLING   | Sling          |
| SLING   | Sling          |
| SLING   | Sling          |
| SLING   | Sling          |
| TNT1    | TNT (1 stick)  |
| TNT1    | TNT (1 stick)  |
| TNT1    | TNT (1 stick)  |
| TNT1    | TNT (1 stick)  |
| TNT1    | TNT (1 stick)  |
| TNT1    | TNT (1 stick)  |
| TNT1    | TNT (1 stick)  |
| TNT2    | TNT (5 sticks) |
| TNT2    | TNT (5 sticks) |
| TNT2    | TNT (5 sticks) |
| TNT2    | TNT (5 sticks) |
| TNT2    | TNT (5 sticks) |
| TNT2    | TNT (5 sticks) |
| TNT2    | TNT (5 sticks) |
+---------+----------------+
98 rows in set (0.16 sec)

外部连接 left join 不用where 用on
下面是自连接,产生5条数据

mysql> select * from customers c, orders o where c.cust_id = o.cust_id;
+---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+-----------+---------------------+---------+
| cust_id | cust_name      | cust_address        | cust_city | cust_state | cust_zip | cust_country | cust_contact | cust_email          | order_num | order_date          | cust_id |
+---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+-----------+---------------------+---------+
|   10001 | Coyote Inc.    | 200 Maple Lane      | Detroit   | MI         | 44444    | USA          | Y Lee        | ylee@coyote.com     |     20005 | 2005-09-01 00:00:00 |   10001 |
|   10003 | Wascals        | 1 Sunny Place       | Muncie    | IN         | 42222    | USA          | Jim Jones    | rabbit@wascally.com |     20006 | 2005-09-12 00:00:00 |   10003 |
|   10004 | Yosemite Place | 829 Riverside Drive | Phoenix   | AZ         | 88888    | USA          | Y Sam        | sam@yosemite.com    |     20007 | 2005-09-30 00:00:00 |   10004 |
|   10005 | E Fudd         | 4545 53rd Street    | Chicago   | IL         | 54545    | USA          | E Fudd       | NULL                |     20008 | 2005-10-03 00:00:00 |   10005 |
|   10001 | Coyote Inc.    | 200 Maple Lane      | Detroit   | MI         | 44444    | USA          | Y Lee        | ylee@coyote.com     |     20009 | 2005-10-08 00:00:00 |   10001 |
+---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+-----------+---------------------+---------+
5 rows in set (0.10 sec)

外部连接 where换成on left join 产生6条数据

还有right jion

mysql> select * from customers c left join orders o on c.cust_id = o.cust_id;
+---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+-----------+---------------------+---------+
| cust_id | cust_name      | cust_address        | cust_city | cust_state | cust_zip | cust_country | cust_contact | cust_email          | order_num | order_date          | cust_id |
+---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+-----------+---------------------+---------+
|   10001 | Coyote Inc.    | 200 Maple Lane      | Detroit   | MI         | 44444    | USA          | Y Lee        | ylee@coyote.com     |     20005 | 2005-09-01 00:00:00 |   10001 |
|   10003 | Wascals        | 1 Sunny Place       | Muncie    | IN         | 42222    | USA          | Jim Jones    | rabbit@wascally.com |     20006 | 2005-09-12 00:00:00 |   10003 |
|   10004 | Yosemite Place | 829 Riverside Drive | Phoenix   | AZ         | 88888    | USA          | Y Sam        | sam@yosemite.com    |     20007 | 2005-09-30 00:00:00 |   10004 |
|   10005 | E Fudd         | 4545 53rd Street    | Chicago   | IL         | 54545    | USA          | E Fudd       | NULL                |     20008 | 2005-10-03 00:00:00 |   10005 |
|   10001 | Coyote Inc.    | 200 Maple Lane      | Detroit   | MI         | 44444    | USA          | Y Lee        | ylee@coyote.com     |     20009 | 2005-10-08 00:00:00 |   10001 |
|   10002 | Mouse House    | 333 Fromage Lane    | Columbus  | OH         | 43333    | USA          | Jerry Mouse  | NULL                | NULL      | NULL                | NULL    |
+---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+-----------+---------------------+---------+
6 rows in set (0.11 sec)

带有聚合函数的联结

自连接方式

mysql> select c.cust_name, c.cust_id, count(*) from customers c, orders o where c.cust_id = o.cust_id group by c.cust_id;
+----------------+---------+----------+
| cust_name      | cust_id | count(*) |
+----------------+---------+----------+
| Coyote Inc.    |   10001 |        2 |
| Wascals        |   10003 |        1 |
| Yosemite Place |   10004 |        1 |
| E Fudd         |   10005 |        1 |
+----------------+---------+----------+

left join模式

mysql> select c.cust_name, c.cust_id, count(*) from customers c left join orders o on c.cust_id = o.cust_id group by c.cust_id;
+----------------+---------+----------+
| cust_name      | cust_id | count(*) |
+----------------+---------+----------+
| Coyote Inc.    |   10001 |        2 |
| Mouse House    |   10002 |        1 |
| Wascals        |   10003 |        1 |
| Yosemite Place |   10004 |        1 |
| E Fudd         |   10005 |        1 |
+----------------+---------+----------+
5 rows in set (0.08 sec)
遥感图像地物覆盖分类,数据集制作-分类模型对比-分类保姆级教程 1.新建shp文件地理坐标系保持和影像一致,面类型2.打开属性表3.添加字段这里分类6类,点击添加值添加添加完毕开始人工选地物类型,制作数据集开始标注,标注的时候可以借助谷歌地图来看标记足够多的样本打开面转栅格工具设置nodata值为15。 阅读详情

相关推荐

python:numpy分享(保姆级教程)

创建数组:array和ndarray、rand()、randn()、arange()、randint()、uniform()astype()基础函数:ceil()、floor()、rint()、argmax()、argmin()、cumsum()、cumprod()numpy 是数据分析必不可少的第三方库,具有高性能的特点,多用于做数组分析。内置函数:ceil()、floor()、rint()主要用于数组计算,支持多维数组。array和ndarray。比较函数:all、any。去重函数:unique。

sulin123123的博客 1732

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

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

phs999的博客 1万+

【YOLOv7-环境搭建】PyTorch安装后输出版本显示No module named ‘Torch’的解决方法

【YOLOv7-环境搭建】PyTorch安装后输出版本显示No module named ‘Torch’的解决方法:①检查PyCharm导入的环境是否错误②添加Torch包

qq_59942266的博客 4970

mysql中内连接,外连接,等值连接,非等值连接,自然连接的区别和联系

内连接,外连接实际上都是在笛卡尔积(join)的基础上对记录进行筛选。 等值连接和非等值连接:这两者同时包含在内连接和外连接中,因为内连接和外连接都是需要连接条件的,条件为=则为等值连接,反之为非等值连接。 自然连接:等值连接的一种,使用natural join后面可以不使用on接查询条件,默认会将关联表中的相同字段进行比较,查询出的结果相同的字段会去重(值必须相等)。 内连接:使用inne...

活成自己想要的模样 9109

使用-flat.vmdk文件恢复ESXI虚拟机的vmdk文件

解决flat.vmdk文件丢失恢复问题

神秘人的博客 6775

NVIDIA DGX Spark 深度应用解析:从大模型训练到边缘推理的完整实践指南

内存管理:充分利用统一内存架构,避免不必要的数据传输批处理大小:根据模型大小调整批处理大小以优化内存使用精度选择:在精度损失可接受范围内使用较低精度计算流水线优化:重叠计算和数据传输操作DGX Spark作为一个专门的AI计算平台,在大模型开发的各个阶段都能发挥重要作用。从数据预处理到模型训练,从微调到推理部署,其统一内存架构和强大的计算能力为AI开发者提供了前所未有的本地开发体验。需要注意的是,虽然DGX Spark性能强大,但合理的算法设计和系统优化仍然是获得最佳性能的关键。

time_days的博客 2872

MySQL 保姆级教程(十四):创建高级联结

【代码】MySQL 保姆级教程(十四):创建高级联结。

Flag少侠的博客 1万+

王爽《汇编语言》课程设计2(不涉及软盘版本)

assume cs:code,ds:data,ss:stack stack segment db 128 dup (0) stack ends data segment db 256 dup (0) data ends code segment start: mov ax,stack mov ss,ax mov sp,128 ...

weixin_41944412的博客 1179

MySQL学习 || 任务4 联系表联结和复杂的SQL查询

任务4 联系表联结和复杂的SQL查询MySQL 实战数据导入导出作业MySQL 实战 - 复杂项目作业 MySQL 实战 数据导入导出 作业 MySQL 实战 - 复杂项目 作业

安东尼-东方的博客 517

Windows 11/10系统盘被BitLocker锁了别慌!手把手教你用manage-bde命令找回密钥并解锁

本文详细介绍了当Windows 11/10系统盘被BitLocker锁定后的恢复方法,重点讲解了如何使用manage-bde命令行工具找回密钥并解锁加密驱动器。通过进入Windows恢复环境、诊断锁定状态、提取恢复密钥ID以及执行解锁操作等步骤,帮助用户有效解决BitLocker锁定问题,同时提供了后续防护优化建议和高级故障排除技巧。

weixin_42542669的博客 1465

生成EtherCAT从站XML图片信息方法

详细介绍了EtherCAT从站XML文件中图片元素的生成方法。

kevin1499的博客 2130

【MySQL】3.表操作-表联结

MySQL基础-表操作-表联结 文章目录MySQL基础-表操作-表联结表操作创建表更新表删除表插入数据从一个表复制到另一个表更新数据删除数据组合查询使用子查询表联结创建联结内联结、INNER JOIN创建高级联结自联结(self-join)自然联结(natural join)外联结(outer join)作业 表操作 创建表 create table 表名(列名1 数据类型, ​ 列名2 ...

susanhc的博客 485

OpenCV C++ 图像处理实战 ——《基于轮廓比对的缺陷检测》

本文使用OpenCV C++ 实现基于轮廓比对的缺陷检测。

Zero___Chen的博客 1150

MySQL 高级学习篇

索引是用于提高数据查询速度的数据库对象,通过创建额外的数据结构来快速定位和访问表中的数据行。视图是一个虚拟表,基于一个或多个基表的定义。视图中的数据是动态的,依赖于基表的数据。存储过程是一组预编译的 SQL 语句,存储在数据库中,可通过名称调用执行。函数是用于计算和返回值的预编译代码块,可在 SQL 查询中使用。触发器是一种特殊的数据库对象,当特定事件发生时自动执行预定义的操作。

fictionist的博客 973

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

mysql高级查询

select格式及语句执行顺序 select from where group by // having过滤分组(基于分组的聚集值) having order by limit from子句取来自所有表的数据数据; where进行第一遍筛选。 group by对行分组,聚集函数运算,每组得到一行。 having筛选每一组得到的行,组合为新表。 //group by的内容必须用having修...

qq_42948022的博客 216

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

MYSQL 笔记16-20

创建高级联结 使用表别名 之前说到用AS可以创建别名,别名除了用于列名和计算字段外,SQL还允许给表名起别名,这样做有两个主要的理由: 缩短SQL语句 允许在单条SELECT 语句中多次使用相同的表 通过上面的语句,可以看到FROM子句中3个表全部都具有别名,customers AS c建立c作为customers的别名,在这个例子中,表别名只用于WHERE子句,但是表别名不仅能用于WHERE子句,还可用于SELECT的列表,ORDER BY子句以及语句的其他部分; 使用不同类型的联结 之前使用的都是内

qq_29498749的博客 1469

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

MySQL高级查询一

MySQL高级查询一 一、修改表 #修改表名 alter table info2 rename info; #添加字段 alter table info2 add password varchar(10) not null; #修改字段 alter table info2 change name username varchar(10) not null; #删除字段 alter table i...

weixin_45864941的博客 382

MySQL基本语法、高级语法知识总结以及常用语法案例

MySQL基本语法、高级语法知识总结以及常用语法案例

weixin_47139678的博客 2539

《MySQL必知必会》--第16-20章

第16章--创建高级联结16.1 使用表别名别名除了用于列名和计算字段外,SQL还允许给表名起别名。这样做有两个主要理由:缩短SQL语句。允许在单条SELECT语句中多次使用相同的表。应该注意,表别名只在查询执行中使用。与列别名不一样,表别名不返回到客户机。16.2 使用不同类型的联结迄今为止,我们使用的只是称为内部联结或等值联结(equijoin)的简单联结。现在来看3种其他联结,它们分别是自联...

csdn_kenneth的博客 304

mysql 把查询结果一列拼接_一篇文章帮你搞定所有MySQL命令!

MySQL的基本操作可以包括两个方面:MySQL常用语句如高频率使用的增删改查(CRUD)语句和MySQL高级功能,如存储过程,触发器,事务处理等。而这两个方面又可以细分如下:MySQL常用语句 表(或者数据库)的CRUD 表数据的CRUD,其中表数据查询使用最多,也更复杂。查询可以按照单表还是多表可以分为:单表SELECT查询和多表的联结查询(INNER JOIN, LEFT JOIN, RIG...

weixin_30075185的博客 3091

初识Mysql(part18)--我需要知道的4个关于联结的小知识点

学习笔记,以代码和例子堆砌而成,方便查阅。 参考书籍:《Mysql必知必会》等 要点:表别名,自链接,外连接,聚合函数与联结 此Blog会用到下面2个表. temp_product表: # pr_id, pro_name, price '1001', 'Apple', '3' '1002', 'Pen', '50' '1003', 'Book', '35' '1004', 'Hamburger'...

小山羊的学习日志 802

mysql进阶查询方法

mysql进阶查询方法,包括拼接,别名,通配符,函数,子查询 ,联结,组合查询的介绍。

二郎银的博客 534

关于《MySQL 必知必会》的学习4

之前的学习都是简单查询,基于一张表的单条查询语句。今天的学习稍微有一点难,是关于一些进阶的查询,有子查询、联结查询,高级联结查询、组合查询和全文本搜索(索引)。 第14章:使用子查询        子查询就是在原本的简单查询语句中嵌套上另一条查询语句来达到过滤的效果。

sinceow的专栏 888

MYSQL笔记

学习笔记

JJ1M8的博客 1199

Mysql_07_数据查询

原文地址:https://github.com/shirayner/java-knowledge-hierarchy/tree/master/doc/Mysql 此系列博客是站在大牛的肩膀上所做的总结,主要是方便建立自己的知识体系。所参考的文章会在每篇博客的参考资料部分列出 文章目录前言一、查询语句1. 基本查询2. 数据过滤2.1 Where 子句操作符2.3 LIKE与正则表达式3.4...

shirayner 214
上一篇: 19、MySQL的联结表
下一篇: MySQL第五章 21、组合查询
dingpython
博客等级 码龄6年 5粉丝 61原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值