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

Powolna instrukcja OR w postgresql

Całkowicie nowe podejście. Twój where stan jest na dwóch stołach, ale wydaje się to niepotrzebne.

Pierwsza zmiana to:

where a1_.id = 1136 or a1_.parent_id = 1136

Myślę, że struktura, którą chcesz, to skanowanie tabeli kategorii, a następnie pobieranie z tabeli ogłoszeń. Aby pomóc, możesz utworzyć indeks na advert(advert_category_id, created_date) .

Kusiłoby mnie, aby napisać zapytanie, przesuwając where klauzulę do podzapytania. Nie wiem, czy miałoby to wpływ na wydajność:

SELECT a0_.id AS id0
FROM   advert a0_ INNER JOIN
       (select ac.*
        from advertcategory ac
        where ac.id = 1136 or ac.parent_id = 1136
       ) ac
       ON a0_.advert_category_id = ac.id
ORDER  BY a0_.created_date DESC
LIMIT  15;  


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy postgresql obsługuje lookbehind regexp?

  2. Nie znaleziono pg_dump w szynach

  3. Wstaw nowy element w kolumnie JSONB na podstawie wartości innego pola - postgres

  4. Nieprawidłowa składnia w pobliżu „PROCEDURA” postgresql

  5. Jak skonfigurować psycopg2 z bazą danych PostgreSQL Google App Engine