NOT EXISTS
の使用
SELECT p.*
FROM TABLE_PRODUCT p
WHERE p.astatus = 'APAST'
AND NOT EXISTS (SELECT NULL
FROM TABLE_USER_OWNED_AUCTION uoa
WHERE uoa.specific_product_id = p.specific_product_id)
LEFT JOIN/IS NULL
の使用
SELECT p.*
FROM TABLE_PRODUCT p
LEFT JOIN TABLE_USER_OWNED_AUCTION uoa ON uoa.specific_product_id = p.specific_product_id
WHERE p.astatus = 'APAST'
AND uoa.own_id IS NULL
説明
最適なクエリは、2つのテーブル間で比較される列がNULL可能かどうかによって判断できます(つまり、specific_product_id
の値が どちらのテーブルでもNULL
にすることができます 。
補遺
最適なクエリが決定したら、作成を確認してください。インデックス(おそらくインデックスをカバーする) 少なくとも:
-
specific_product_id
-
TABLE_PRODUCT.astatus