WHERE
を使用する場合 LEFT JOIN
の右側のテーブルの条件 (外部結合)、それは事実上INNER JOIN
になります 、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