0

A と B のような 2 つの mysql テーブル

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 のレコードがあります。

結合クエリを固定するにはどうすればよいですか??

私を助けてください??????

4

2 に答える 2

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と、結合が行われている間、一致しないレコードが除外されます。

于 2012-12-14T11:08:52.827 に答える
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
于 2012-12-14T11:09:30.100 に答える