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

在 MySQL 中,只写 JOIN 等价于?

在 MySQL 中,只写 JOIN 等价于 INNER JOIN
这是 MySQL 的默认行为,具体规则如下:


关键结论

  1. JOIN 默认行为
    当只写 JOIN 时,MySQL 会将其视为 INNER JOIN,即仅返回两个表中匹配的行

     

    sql复制代码

    SELECT * FROM table1
    JOIN table2 ON table1.id = table2.id;

    等价于:

     

    sql复制代码

    SELECT * FROM table1
    INNER JOIN table2 ON table1.id = table2.id;
  2. 其他 JOIN 类型需显式声明
    若需 LEFT JOINRIGHT JOIN 或 CROSS JOIN,必须明确写出:

     

    sql复制代码

    SELECT * FROM table1
    LEFT JOIN table2 ON table1.id = table2.id; -- 保留左表所有行

为什么需要明确?

  • 避免歧义:不同数据库的默认行为可能不同(如某些数据库默认 JOIN 为 CROSS JOIN)。
  • 代码可读性:显式声明 JOIN 类型(如 INNER JOIN)能让意图更清晰。

总结

  • JOIN = INNER JOIN(MySQL 默认值)
  • 其他 JOIN 类型(如 LEFT JOIN)需显式指定。

http://www.kler.cn/a/593412.html

相关文章:

  • 3.19刷题
  • vue3自定义修饰符
  • SQL SERVER日常运维巡检系列—结构设计
  • 为什么TCP需要三次握手?一次不行吗?
  • 面试整理--一个报告生成的方案解析
  • 破局与重构:技术演进中的性能优化与架构设计全景指南
  • SpringBoot的启动原理?
  • AI安全、大模型安全研究(DeepSeek)
  • Java基于SpringBoot的房屋租赁系统设计与实现(java+SpringBoot+vue+mysq+html)
  • Python高级:GIL、C扩展与分布式系统深度解析
  • axios 请求拦截器和 响应拦截器总结
  • 数组连续和 - 华为OD统一考试(C卷)
  • qemu ept设置过程
  • 在 STM32F7 系列微控制器中,使用定时器(如 TIM10)实现 10ms 中断,并在中断服务函数中调用 ProRelay() 函数
  • C#的字符串之String类与StringBuilder类区别于适用场景
  • UI设计中的加载动画:优化用户体验的细节
  • 【LangChain入门 3 Prompts组件】聊天提示词模板 ChatPromptTemplate
  • Vue3中的$attrs全解析
  • 网络编程之客户端聊天(服务器加客户端共三种方式)
  • Netty源码—1.服务端启动流程二