1

Email少し錆びていますが、Customersテーブルにないものをすべて返したいMailingListので、このクエリを使用していますが、予想より少し時間がかかります。高速化するために使用できる他のタイプのロジックはありますか (ie の代わりにM.Email <> C.Email?

 SELECT DISTINCT C.Email FROM CUSTOMERS C
 INNER JOIN MailingList M ON M.Email <> C.Email
 GROUP BY C.Email
4

2 に答える 2

2

次のようなことができます。

SELECT DISTINCT C.Email FROM CUSTOMERS C
LEFT OUTER JOIN MailingList M ON M.Email = C.Email
WHERE M.Email is null

どちらのクエリでもグループ化は必要ないと思います。

于 2012-11-20T17:19:05.413 に答える
0

相関サブクエリもトリックを行う可能性があります

SELECT C.Email FROM CUSTOMERS C 
WHERE C.Email NOT IN (
  SELECT M.Email FROM MAILINGLIST
  WHERE M.EMAIL = C.EMAIL
)

パフォーマンスのために、MAILINGLISTテーブルのEMAILフィールドにインデックスがあることを確認してください。

于 2012-11-20T17:27:51.853 に答える