如何在mysql中加入查询连接

时间:2012-12-14 11:02:49

标签: 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

我的桌子是这样的。我打算像

一样查询
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的记录。

如何加快连接查询?

请帮帮我??????

2 个答案:

答案 0 :(得分:1)

使用加入的WHERE子句代替ON

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子句时,在发生连接时会过滤掉不匹配的记录。

答案 1 :(得分:1)

Please try this

select A.name, B.loc from emp_A A join emp_B B on(A.id=B.emp_id) join emp_sr C on (B.sr_no=C.sr_no) where C.sr_no = 123