我是一个老派的MySQL用户,总是喜欢JOIN而不是子查询.但是现在每个人都使用子查询,我讨厌它;我不知道为什么.

我缺乏理论知识,无法自己判断是否存在差异.子查询是否与JOIN一样好,因此无需担心?

推荐答案

Taken from the MySQL manual (13.2.10.11 Rewriting Subqueries as Joins):

左[OUTER]连接可能比等效子查询更快,因为服务器可能能够更好地优化它——这一事实并非仅限于MySQL服务器.

所以子查询可以比LEFT [OUTER] JOIN慢,但在我看来,它们的优势是可读性略高.

Mysql相关问答推荐

了解查询中ORDER BY的行为

SQL不断返回查询失败,并且不知道从这里到哪里go

MySQL工作台的编码问题

错误:此查询集包含对外部查询的引用,并且只能在子查询中使用

如何将数据导入MySQL中的master/replica struct

MySql部分匹配基于部分查询代码

当查询 MySQL 的 goroutine 过多时,Go 会出现panic

MySQL IF() 函数根据指定条件执行代码块

如何在考虑另一表的值的情况下计算一列的值

MYSQL LOAD DATA INFILE 语句适用于工作台,但不适用于 python

使用 MySQL LIMIT、OFFSET 进行分页

PHP,MySQL 错误:列计数与第 1 行的值计数不匹配

在mysql中将纪元数转换为人类可读的日期

从 MYSQL 查询中计算列的平均值

在 MySQL Workbench EER 图中的多个列上创建唯一约束

将 MySQL 数据库置于版本控制之下?

使用 Java 通过 SSH 连接到远程 MySQL 数据库

Yii2 如何进行 where AND 或 OR 条件分组?

在 MySQL Workbench 中导出超过 1000 条记录的查询结果

我在哪里可以下载 mysql jdbc jar?