当前位置: 首页 > news >正文

SQL进阶:自连接的用法

目录

一、可重排列、排列、组合

1、创建表

2、录入数据

3、获取可重排列的商品名称

4、获取排列的商品名称

​编辑

5、获取组合的商品名称

6、获取3个元素的组合商品名称

二、 删除重复行

1、创建表 

2、录入数据

3、使用极值函数(保留最大ID)

4、使用非等值连接(保留最大ID)


一、可重排列、排列、组合

1、创建表

CREATE TABLE `product` (`name` VARCHAR(50) NULL DEFAULT NULL COMMENT '商品名称' COLLATE 'utf8mb4_0900_ai_ci',`price` INT(10) NULL DEFAULT NULL COMMENT '价格'
)
COMMENT='产品表'
COLLATE='utf8mb4_0900_ai_ci'
ENGINE=InnoDB
;

2、录入数据

3、获取可重排列的商品名称(有序)

SELECT P1.name ,P2.name 
FROM product P1,product P2

4、获取排列的商品名称(有序)

SELECT P1.name ,P2.name 
FROM product P1,product P2 
WHERE P1.name <> P2.name

5、获取组合的商品名称(无序)

SELECT P1.name ,P2.name 
FROM product P1,product P2 
WHERE P1.name > P2.name

6、获取3个元素的组合商品名称(无序)

SELECT P1.name ,P2.name, P3.name 
FROM product P1,product P2,product P3  
WHERE P1.name > P2.name 
AND P2.name > P3.name 

二、 删除重复行

1、创建表 

CREATE TABLE `product` (`id` BIGINT(19) NOT NULL AUTO_INCREMENT,`name` VARCHAR(50) NULL DEFAULT NULL COMMENT '商品名称' COLLATE 'utf8mb4_0900_ai_ci',`price` INT(10) NULL DEFAULT NULL COMMENT '价格',PRIMARY KEY (`id`) USING BTREE
)
COMMENT='产品表'
COLLATE='utf8mb4_0900_ai_ci'
ENGINE=InnoDB
AUTO_INCREMENT=4
;

2、录入数据

3、使用极值函数(保留最大ID)

SELECT * 
FROM product P1 
WHERE id < (SELECT MAX(id) FROM product P2 WHERE P1.name = P2.name AND P1.price = P2.price)

4、使用非等值连接(保留最大ID)

SELECT * 
FROM product P1 
WHERE EXISTS (SELECT 1 FROM product P2 WHERE P1.name = P2.name AND P1.price = P2.price  AND P1.id < P2.id)

http://www.dtcms.com/a/273214.html

相关文章:

  • 数字电子时钟——数字电路课设
  • 存在两个cuda环境,在conda中切换到另一个
  • vue3中ref和reactive的使用、优化
  • ABP vNext + OpenIddict:多租户授权中心
  • 二分查找篇——搜索旋转排序数组【LeetCode】两次二分查找
  • PPT 倒计时工具:把控节奏,掌握时间,超简单超实用让演示游刃有余
  • linux的DNS域名解析服务
  • Python操作redis数据库:终端下载安装命令、redis关键特性说明、redis的数据类型、redis的连接两种方式
  • 模块三:现代C++工程实践(4篇)第三篇《C++与系统编程:Linux内核模块开发入门》
  • 一个编辑功能所引发的一场知识探索学习之旅(JavaScript、HTML)
  • 笔记:CMakeLists基础语法
  • 在Zabbix 7 中配置对Nginx的监控
  • 外呼如何提高接通率
  • Rail开发日志_2
  • burpsuite记录
  • 深入理解oracle ADG和RAC
  • kotlin中集合的用法
  • kotlin中withContext,async,launch几种异步的区别
  • 【Python练习】035. 编写一个函数,实现简单的文本搜索功能
  • CPU调度调度算法
  • 低功耗小尺寸的空间入侵监测报警设备的市场需求方向
  • 【Python常见问题】【路径】路径总是有问题?深度剖析
  • 【JVM|垃圾回收】第二天
  • Transformer模型原理概述
  • 【Linux】Linux 操作系统 - 27 , 进程间通信(三) --System V 共享内存
  • 零基础入门物联网-远程门禁开关:硬件介绍
  • 多线程学习
  • 指针的const应用
  • 老式MVC架构Web应用:经典框架下的技术坚守与现代挑战
  • STM32F103C8T6驱动无源蜂鸣器详解:从硬件设计到音乐播放