sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL:existuje vs levé připojení

No, pro každý řádek ve "skupinách" postgresql provádí úplný sken product_categories, což není dobré. Není to nutně problém s konfigurací, ale dotaz by možná mohl být uveden bez vnořování poddotazů, jako je tento?

SELECT count(DISTINCT "groups".id) AS count_all 
FROM "groups"
WHERE exists(
    select 1 from products p where groups.id = p.group_id
             join products_categories pc on pc.product_id = p.id
    where pc.category_id in (2,3)
    ) and groups.id <> 3

Také products_categories mít index na product_id ?




  1. Jak uložit data starší než časové razítko v PHP

  2. 2. kvadrant Deutschland – speciální školení zahajovací smlouva

  3. Správný způsob, jak anotovat pole hodnocení pro sadu dotazů

  4. Migrace databáze Laravel - chyba přejmenování sloupce - Je požadován výčet neznámého typu databáze