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
स्पष्टीकरण
सबसे इष्टतम क्वेरी इस बात से निर्धारित की जा सकती है कि क्या दो तालिकाओं के बीच तुलना किए गए कॉलम NULLable हैं (IE:यदि specific_product_id
के मान हैं किसी भी तालिका में NULL
हो सकता है )।
- अगर अशक्त,
NOT IN
याNOT EXISTS
MySQL में सबसे अच्छा विकल्प है - अगर अशक्त नहीं है, `लेफ्ट जॉइन/IS NULL MySQL में सबसे अच्छा विकल्प है
परिशिष्ट
एक बार इष्टतम क्वेरी निर्धारित हो जाने के बाद, बनाने पर एक नज़र डालें इंडेक्स (संभवतः इंडेक्स को कवर करना) कम से कम के लिए:
specific_product_id
TABLE_PRODUCT.astatus