MYSQL自联结

文章目录

查找:生产ID为DTNTR物品的供应商,生产的其他物品。

子查询
sql 复制代码
SELECT
	prod_id,
	prod_name 
FROM
	products 
WHERE
	vend_id = ( SELECT vend_id FROM products WHERE prod_id = 'DTNTR' );
自联结
sql 复制代码
SELECT p1.prod_id,p1.prod_name   # 必须指定为p1.prod_id,p1.prod_name
FROM
	products AS p1,
	products AS p2 
WHERE
	p1.vend_id = p2.vend_id 
	AND p2.prod_id = 'DTNTR'

p2已经被限制为了具体的一行

sql 复制代码
SELECT p2.prod_id,p2.prod_name
FROM
	products AS p1,
	products AS p2 
WHERE
	p1.vend_id = p2.vend_id 
	AND p2.prod_id = 'DTNTR'
sql 复制代码
SELECT
	* 
FROM
	products AS p1,
	products AS p2 
WHERE
	p1.vend_id = p2.vend_id 
	AND p2.prod_id = 'DTNTR'
比较

从运行时间看,自联结比子查询快!

相关推荐
朱容zr3331338 分钟前
请解释“回表”的概念。
java·前端·数据库
大黄说说29 分钟前
EF Core 避坑指南:查询慢、循环查询、并发更新问题如何解决
java·服务器·数据库
城管不管37 分钟前
重生——第五次面试2026.8.1一面
java·数据库·后端·ai·面试·职场和发展·agent
ocean'42 分钟前
防火墙策略路由
linux·服务器·数据库
纪念 2291 小时前
数据库基础
数据库·笔记·学习方法
songgz1 小时前
zVM统一OS与DB
jvm·数据库·vm
brave_zhao1 小时前
mysql的安装
数据库·mysql
吴声子夜歌1 小时前
MongoDB 8.0——聚合
数据库·mongodb
冷凝娇1 小时前
【MySQL】2026总结(一)
数据库·mysql
changshuaihua0012 小时前
Redis 详解:Redis 与 MySQL 的区别、数据类型与缓存三大问题
数据库·redis·缓存