2011-12-19 180 views

答えて

5

は、それが見えます。 DISTINCTROWは異なります。
+1

+1を読んでいるが、 'EXISTS'と' JOIN'のパフォーマンスに関する記述が間違っています。 –

+0

私は、彼らがかなり違う状況を見たことを誓っています。彼らは確かに異なる実行計画を生成します。 –

+1

'EXISTS'の実行計画を見てください。これは、とにかく結合(半結合)として実装され、ハッシュ、マージ、またはネストされたループになることができるので、内部結合が良いと期待する理由はありません。 –

-3

SQLサーバーは、あなたがキーワードにDISTINCT

を使用する必要があります。しかし、クリスShainが与えられた答えは、あなたが望むものを与え代わりにDISTINCTROWをサポートしていません。

+0

アクセスもSQLのと同じように動作DISTINCT句を持っている:あなたは句が存在するか、A参加(一般的にパフォーマンスを向上させるため)したいようDISTINCTROWのドキュメントを読んでから、 –

-4

代わりにキーワードDISTINCTを使用できます。

SELECT * FROM A 
WHERE EXISTS(SELECT * FROM B WHERE B.a_id = A.a_id) 

SELECT DISTINCT A.* FROM A 
INNER JOIN B ON A.a_id = B.a_id 
-- corrected, should be inner join here 
+0

ありがとうございます。 –

関連する問題