2

私のクエリは、パイプライン レートが「使用なし」ではないすべての使用状況レコードを返す必要があります。

NOT EXISTS と NOT IN と LEFT JOIN WHERE IS NULL の違いは何ですか?

上記の質問を見て、テーブルの値が null 許容であるため、EXISTS ではなく IN を使用することにしました。次のうちどれがより効果的で効率的ですか、または次の 2 つよりも効率的な他の方法はありますか?

SELECT *
FROM   usagerecords UR
WHERE  UR.usagerateid NOT IN (SELECT id
                              FROM   pipelinerate PR
                              WHERE  PR.name = 'No Usage')

SELECT *
FROM   usagerecords UR
WHERE  UR.usagerateid IN (SELECT id
                          FROM   pipelinerate PR
                          WHERE  PR.name <> 'No Usage') 
4

2 に答える 2