जब आप WHERE
. का उपयोग करते हैं LEFT JOIN
. की दायीं ओर की टेबल पर स्थिति (बाहरी जुड़ाव), यह प्रभावी रूप से एक INNER JOIN
becomes बन जाता है , क्योंकि WHERE
क्लॉज को शर्तों से मेल खाना चाहिए। इसलिए आपको केवल ऐसे मामले मिल रहे हैं जहां c.active = 1
.
आपको WHERE
. को शिफ्ट करना होगा LEFT JOIN .. ON .. AND ..
शर्त:
SELECT
p.id, c.id as category_id
FROM
(SELECT id FROM products p WHERE p.id > 6319055 ORDER BY id LIMIT 1000) prods
LEFT JOIN
products p ON p.id = prods.id
LEFT JOIN
categories c ON c.id = p.category_id
AND c.active = 1