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

Бавен оператор OR в postgresql

Изцяло нов подход. Вашето where условието е на две таблици, но това изглежда ненужно.

Първата промяна ще бъде:

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

Мисля, че структурата, която искате, е сканиране на таблицата с категории и след това извличане от таблицата с реклами. За да помогнете, можете да създадете индекс на advert(advert_category_id, created_date) .

Бих се изкушил да напиша заявката, като преместя where клауза в подзаявка. Не знам дали това ще повлияе на производителността:

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. Как мога да свържа електронна таблица на Google с PostgreSQL?

  2. postgresql последователност nextval в схемата

  3. org.postgresql.util.PSQLException:ГРЕШКА:не можа да сериализира достъпа поради зависимости за четене/запис между транзакциите

  4. heroku тегли postgresql на windows

  5. libpq:Как да получите кода за грешка след неуспешна PGconn връзка