IT评测·应用市场-qidao123.com技术社区

标题: MySQL中表之间关联不同方式操纵详解 [打印本页]

作者: 雁过留声    时间: 2025-3-15 10:19
标题: MySQL中表之间关联不同方式操纵详解
         在 MySQL 中,表关联(Join)是通过 SQL 语法连接两张或多张表的数据。MySQL 支持多种关联方式,包括 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN(需要模拟)、CROSS JOIN 和 SELF JOIN。每种方式有不同的应用场景和性能特点。
1. INNER JOIN

描述

   INNER JOIN 返回两表中满足连接条件的记载。仅返回两表中匹配的记载,不包含任何一方表中无匹配的记载。
  1. <strong>S</strong>ELECT columns
  2. FROM table1
  3. INNER JOIN table2
  4. ON table1.column = table2.column;
复制代码
实用场景


性能


2. LEFT JOIN (LEFT OUTER JOIN)

描述

   LEFT JOIN 返回左表的所有记载,假如右表中有匹配记载,则返回匹配数据;否则返回 NULL。
语法

  1. SELECT columns
  2. FROM table1
  3. LEFT JOIN table2
  4. ON table1.column = table2.column;
复制代码
实用场景


性能


3. RIGHT JOIN (RIGHT OUTER JOIN)

描述

RIGHT JOIN 返回右表的所有记载,假如左表中有匹配记载,则返回匹配数据;否则返回 NULL。
语法

  1. SELECT columns
  2. FROM table1
  3. RIGHT JOIN table2
  4. ON table1.column = table2.column;
复制代码
实用场景


性能



4. FULL JOIN (FULL OUTER JOIN)

描述

    FULL JOIN 返回两表中所有记载,无匹配的记任命 NULL 填充。MySQL 不直接支持 FULL JOIN,但可以通过 UNION 模拟。
语法(模拟 FULL JOIN)

  1. SELECT columns FROM table1 LEFT JOIN table2 ON table1.column = table2.column UNION SELECT columns
  2. FROM table1
  3. RIGHT JOIN table2
  4. ON table1.column = table2.column;
复制代码
实用场景


性能



5. CROSS JOIN

描述

   CROSS JOIN 生成左表和右表的笛卡尔积,即每一行左表都与右表的每一行组合。效果集行数为:左表行数 × 右表行数。
语法

  1. ELECT columns
  2. FROM table1
  3. CROSS JOIN table2;
复制代码
实用场景


性能



6. SELF JOIN

描述

   SELF JOIN 是对同一张表举行连接,用于查询表中行之间的关系。
语法

  1. SELECT a.columns, b.columns
  2. FROM table a
  3. INNER JOIN table b
  4. ON a.column = b.column;
复制代码
实用场景


性能



7. NATURAL JOIN

描述

NATURAL JOIN 自动匹配两表中雷同名称的列,返回匹配的记载。
语法

  1. SELECT columns FROM table1 NATURAL JOIN table2;
复制代码
实用场景


性能



性能比较

连接类型实用场景性能特点INNER JOIN仅需要匹配的记载通常是最快的,适合大多数环境LEFT JOIN主表(左表)记载为主,附加从表数据性能较 INNER JOIN 稍低RIGHT JOIN从表(右表)记载为主,附加主表数据类似 LEFT JOIN,但更少使用FULL JOIN合并两表所有记载,包括不匹配记载性能最差,需谨慎使用CROSS JOIN生成所有组合,比方盘算笛卡尔积效果集大,性能较差SELF JOIN查询表中行间关系(如层级关系)对大表较慢,需索引优化
优化建议


总结



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4