私たちのアプリはしばらくの間このクエリを使用しています:
SELECT id
FROM invoice
WHERE id NOT IN
(SELECT invoice_id FROM invoice_transaction)
#437 rows returned
コードレビューでは、このクエリは左外部結合で書き直されました。
SELECT invoice.id
FROM invoice
LEFT OUTER JOIN invoice_transaction on invoice.id=invoice_transaction.invoice_id
#586 rows returned
最初のクエリは437行を返し、2番目の(おそらく同一の)クエリは586行を返します。これは左外側結合の有効な使用法ではありませんか?
このクエリを書き直すためのより良い方法は何でしょうか?
ありがとうございました!