sql >> Database >  >> RDS >> Mysql

MySQL selecteren met subquery en LIMIT

Wanneer u WHERE . gebruikt voorwaarde in de rechtertabel van een LEFT JOIN (Outer Join), het wordt in feite een INNER JOIN , omdat WHERE clausule moet voldoen aan de voorwaarden. Daarom krijg je alleen gevallen waarin c.active = 1 .

Je moet de WHERE . verschuiven voorwaarde om LEFT JOIN .. ON .. AND .. staat:

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



  1. MariaDB Connector/Python Beta nu beschikbaar

  2. Hoe het resultaat van meerdere zoekopdrachten afwisselend te sorteren?

  3. Datetime NOW PHP mysql (+ PDO variant)

  4. Zoekopdracht bijwerken die ten onrechte resulteert