sql >> Databáze >  >> RDS >> Mysql

MySQL vyberte pomocí dílčího dotazu a LIMIT

Když použijete WHERE stav na pravé straně tabulky LEFT JOIN (Outer Join), efektivně se stává INNER JOIN , protože WHERE doložka musí odpovídat podmínkám. Proto se zobrazují pouze případy, kdy c.active = 1 .

Musíte posunout WHERE podmínku na LEFT JOIN .. ON .. AND .. podmínka:

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. Oracle PL/SQL:Dynamický příklad SQL pomocí okamžitého spuštění

  2. Jak změnit časové pásmo serveru MySQL?

  3. Volání uložené procedury, která obsahuje dynamické SQL z Trigger

  4. Nakonfigurujte skupiny dostupnosti SQL Server Always ON mezi dvěma synchronními replikami. Část 2