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

MySQL 关联查询速查笔记

MySQL 关联查询速查笔记

📌 核心关联类型

类型语法特点应用场景
INNER JOINA JOIN B ON...只返回两表匹配的行需要严格匹配数据的查询
LEFT JOINA LEFT JOIN B...保留左表全部数据,右表无匹配则为NULL统计时保留主表完整数据
RIGHT JOINA RIGHT JOIN B...保留右表全部数据,左表无匹配则为NULL较少使用(通常用LEFT JOIN替代)
FULL JOINUNION实现保留两表全部数据需要合并两表所有记录的特殊场景

🔍 常用查询模板

-- 基础关联查询
SELECT a.*, b.* 
FROM 主表 a
JOIN 关联表 b ON a.id = b.foreign_key;-- 带聚合的关联统计
SELECT a.id,a.name,COUNT(b.id) AS item_count
FROM 主表 a
LEFT JOIN 子表 b ON a.id = b.parent_id
GROUP BY a.id;-- 多表级联关联
SELECT a.name, b.value, c.status
FROM 表A a
JOIN 表B b ON a.id = b.a_id
JOIN 表C c ON b.id = c.b_id;

⚡ 性能优化要点

  1. 必加索引:关联字段必须建立索引

    ALTER TABLE 子表 ADD INDEX idx_foreign_key (foreign_key);
    
  2. 查询精简原则

    • 避免 SELECT *,只查必要字段
    • 大表关联时,先过滤再JOIN
  3. 执行顺序:小表驱动大表(FROM后先写小表)

🔄 方案选型对比

方案优点缺点适用场景
关联查询数据实时准确,无冗余存储复杂查询可能较慢数据量小,变动频繁的场景
同步字段查询性能极佳需维护数据一致性数据量大,统计查询频繁的场景
http://www.xdnf.cn/news/11828.html

相关文章:

  • MySQL 事务深度解析:面试核心知识点与实战
  • nginx配置
  • 机器学习基础相关问题
  • vue2 项目中 npm run dev 运行98% after emitting CopyPlugin 卡死
  • QT聊天项目DAY13
  • 掌握 MotionLayout:交互动画开发
  • 用户 xxx is not in the sudoers file.
  • 基于Gemini 2.5 Pro打造的AI智能体CanvasX上线,绘制常见图表(折线图、柱状图等),国内直接使用
  • FreeCAD:开源世界的三维建模利器
  • (每日一道算法题)求根节点到叶节点数字之和
  • HTML基础学习
  • MYSQL之表的内连和外连
  • ABP-Book Store Application中文讲解 - Part 8: Authors: Application Layer
  • 解决Java项目NoProviderFoundException报错
  • C++课设:银行账户管理系统
  • 【Golang笔记04】Go语言中文件操作的学习笔记
  • tauri2项目中自定义执行cmd命令界面卡死以及中文出错问题
  • Elasticsearch中的监控(Monitoring)功能介绍
  • 【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
  • 八:操作系统设备管理之I/O 操作方法
  • AI编程规范失控?三大策略用Cursor Rules精准约束
  • 电子手机商城源码+springboot+vue3(带用户协同过滤个性化推荐算法)
  • DexUMI:以人手为通用操作界面,实现灵巧操作
  • 平面上的最接近点对
  • 怎么通过 jvmti 去 hook java 层函数
  • 构建高效可靠的电商 API:设计原则与实践指南
  • PyTorch学习笔记 - 损失函数
  • unix/linux,sudo,其历史争议、兼容性、生态、未来展望
  • 如何有效删除 iPhone 上的所有内容?
  • 激光干涉仪:解锁协作机器人DD马达的精度密码