mysql - 如何在mysql中紧固连接查询

标签 mysql join

两个mysql表,如A和B

emp_A(id,name,some_text)     PK is: id

emp_B(sr_no,emp_id,loc,adrr) PK is: emp_id+sr_no

emp_sr(sr_no,a,b)            PK is: sr_no

我的 table 是这样的。我要查询如下

select A.name, B.loc 
from emp_A, emp_B B 
where A.id=B.em_id 
and sr_no =123

emp_A表有大约3L条记录 emp_B表有大约8L条记录。

如何加快我的连接查询?

请帮帮我??????

最佳答案

使用连接的 ON 子句,而不是 WHERE

select A.name, B.loc from emp_A
    inner join emp_B B on A.id=B.em_id and sr_no =123

当您仅使用 WHERE 子句时,首先将 A 中的每条记录连接到 B 中的每条记录,然后过滤掉一些记录。因此,您正在构建一个巨大的表作为中间步骤。

当您使用 ON 子句时,在连接发生时,不匹配的记录将被过滤掉。

关于mysql - 如何在mysql中紧固连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13877387/

相关文章:

php - 对联接表中的行内容求和

mysql - 创建查询以按 2 个字段获取未完成调用组的计数

mysql - 如果其他表中不存在值,如何更新列

php - 基本PHP MYSQL表单未提交

innodb - mysqldump 备份缺少所有 innodb 表,但没有 MyISAM 表

php - PDO 持久连接缓存要求

c# - Linq 加入表中的最后一个实例

php - 我的 iPhone 游戏的高分系统

php - 连接两个表并得到结果

MYSQL select query based on another tables 条目