首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个SQl被认为是一个连接吗?

这个SQl被认为是一个连接吗?
EN

Stack Overflow用户
提问于 2013-03-17 09:06:37
回答 2查看 39关注 0票数 2

我正在使用MySQl在一个“模块”表中的类别ID的基础上从一个表中的类别名称。

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

因为它不调用JOIN

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-17 09:08:54

是的,你加入了。根据documentation,可以用作JOIN关键字的替代品。除非您不能使用非常有用的ON子句。但是,在WHERE子句中有一个连接表的条件。在我看来,将其作为FROM子句的一部分更有意义:

代码语言:javascript
复制
SELECT mo_category_fk, mo_name_vc, mc_name_vc
FROM x_modcats mc 
JOIN x_modules m ON (mc.mc_id_pk = m.mo_category_fk)
WHERE m.mo_folder_vc = :module
票数 2
EN

Stack Overflow用户

发布于 2013-03-17 09:09:01

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

代码语言:javascript
复制
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)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15456537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档