PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

PostgreSQL:съществува срещу ляво съединение

Е, за всеки ред в "групи", postgresql прави пълно сканиране на products_categories, което не е добре. Не непременно проблем с конфигурацията, но може би заявката може да бъде заявена без влагане на подзаявки като този?

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

Също така прави products_categories имат индекс на product_id ?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да разбера дали резервното ми копие на PostgreSQL е добро?

  2. Postgres избира текущи данни за час

  3. Масив с множество типове данни в PostgreSQL

  4. Филтърът TypeORM OneToMany в релации не влияе върху резултата

  5. UnknownHostException при опит за свързване към heroku-postgres от локален Springboot проект с Spring JPA