sql >> Database teknologi >  >> RDS >> Mysql

MySQL vælg med underforespørgsel og LIMIT

Når du bruger WHERE betingelse på højre side af en LEFT JOIN (Outer Join), bliver det effektivt en INNER JOIN , fordi WHERE klausul skal matche betingelserne. Det er derfor, du kun får tilfælde, hvor c.active = 1 .

Du skal flytte WHERE betingelse til LEFT JOIN .. ON .. AND .. tilstand:

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. MySQL fejl 10061

  2. Sådan flytter du og slet feltet i MySQL

  3. Brug af en variabel i WHERE-sætningen

  4. Er der en præstationsforskel mellem HAVING på alias, kontra ikke at bruge HAVING