sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL:bestaat vs linker join

Welnu, voor elke rij in "groepen" voert postgresql een volledige scan uit van products_categories, wat niet goed is. Dit hoeft niet per se een configuratieprobleem te zijn, maar misschien kan de zoekopdracht worden opgegeven zonder subquery's op die manier te nesten?

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

Doet ook products_categories een index hebben op product_id ?




  1. Een primaire moet alle kolommen in de partitielocatiefout van de tabel bevatten?

  2. Bij dubbele sleutel alleen Null- of lege waarden bijwerken

  3. scope_identity vs ident_current

  4. LPAD in SQL Server 2008