Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL selecione com subconsulta e LIMIT


Quando você usa WHERE condição na tabela do lado direito de um LEFT JOIN (Outer Join), ele se torna efetivamente um INNER JOIN , porque WHERE cláusula precisa corresponder às condições. É por isso que você está recebendo apenas casos em que c.active = 1 .

Você precisa mudar o WHERE condição para LEFT JOIN .. ON .. AND .. doença:
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