mysql - 这个 SQl 是否被视为 JOIN?

标签 mysql

我正在使用 MySQl 根据“模块”表中的类别 ID 对 1 个表中的名称进行分类。

我有以下 SQL 可以很好地满足我的需求,但我想知道这是否被视为 JOIN

因为它没有调用JOIN

SELECT  `mo_category_fk` ,  `mo_name_vc` ,  `mc_name_vc`
FROM x_modcats mc, x_modules m
WHERE mc.mc_id_pk = m.mo_category_fk
AND m.mo_folder_vc =  :module

最佳答案

是的 - 在 MySQL 中,隐式连接和显式连接具有相同的执行计划。您可以使用 EXPLAIN 来验证这一点。但这里是另一个线程的示例:

mysql> explain select * from table1 a inner join table2 b on a.pid = b.pid;
+----+-------------+-------+------+---------------+------+---------+--------------+------+-------+
| id | select_type | table | type | possible_keys | key  | key_len | ref          | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+--------------+------+-------+
|  1 | SIMPLE      | b     | ALL  | PRIMARY       | NULL | NULL    | NULL         |  986 |       |
|  1 | SIMPLE      | a     | ref  | pid           | pid  | 4       | schema.b.pid |   70 |       |
+----+-------------+-------+------+---------------+------+---------+--------------+------+-------+
2 rows in set (0.02 sec)

mysql> explain select * from table1 a, table2 b where a.pid = b.pid;
+----+-------------+-------+------+---------------+------+---------+--------------+------+-------+
| id | select_type | table | type | possible_keys | key  | key_len | ref          | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+--------------+------+-------+
|  1 | SIMPLE      | b     | ALL  | PRIMARY       | NULL | NULL    | NULL         |  986 |       |
|  1 | SIMPLE      | a     | ref  | pid           | pid  | 4       | schema.b.pid |   70 |       |
+----+-------------+-------+------+---------------+------+---------+--------------+------+-------+
2 rows in set (0.00 sec)

关于mysql - 这个 SQl 是否被视为 JOIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15456537/

相关文章:

java - 从数据库获取日期并在 Java 中进行比较

mysql匹配日期时间字段的年份

python - 自动将数据从 s3 批量加载到 Aurora MySQL RDS 实例

mysql - 用触发器求和两列

mysql - 如何在 MySQL 中找到某个名称具有列 = 1 的行,但不存在具有相同名称但没有列 = 2 的另一行?

php - 将文本文件每行上传到 mysql 行

mysql - 安装 MySQL-Server 时如何防止安装 MariaDB?

MySQL:对不同别名的操作以生成新别名

php 尝试回显以查看并停止脚本(如果有警报)

javascript - 创建像单独编号的新表一样的表