PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

PostgreSQL:istnieje kontra lewe dołączenie

Cóż, dla każdego wiersza w „grupach” postgresql wykonuje pełne skanowanie kategorii products_categories, co nie jest dobre. Niekoniecznie jest to problem z konfiguracją, ale być może zapytanie można sformułować bez zagnieżdżania takich podzapytań?

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

Również products_categories mieć indeks na 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. Nazywanie każdego wiersza w tabeli losowym ciągiem 2 słów

  2. Django i PostgreSQL - zbyt długa wartość dla zmiennej typu character(512)

  3. Jak ustawić domyślną datę wartości Postgresql, taką jak „RRRRMM”?

  4. SQL:Znajdź najdłuższy wspólny ciąg między wierszami

  5. Jak przekonwertować db w postgreSQL na utf8?