指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
mysql之inner和left的区别
// inner join(这个是inner join)
SELECT *
FROM
    email_template_action_contents AS etac
    INNER JOIN email_template_actions AS eta ON etac.template_action_id = eta.id 
    AND eta.template_category_id = 4 
    AND etac.status_from = 1;

// left join 不生效, 和上面的inner join效果一样
SELECT *
FROM email_template_action_contents AS etac
LEFT JOIN email_template_actions AS eta
  ON etac.template_action_id = eta.id
WHERE etac.status_from = 1 AND eta.template_category_id = 4;

// left join 生效
SELECT *
FROM email_template_action_contents AS etac
LEFT JOIN email_template_actions AS eta
  ON etac.template_action_id = eta.id AND eta.template_category_id = 4
WHERE etac.status_from = 1;


但此时要注意:LEFT JOIN 加 WHERE eta.xxx = yyy 会失效“左连接保留全部”的特性,结果跟 INNER JOIN 一样。
想保留主表全量,条件必须放在 ON 子句中