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

ActiveRecord вложен SELECT

Защо свързвате вместо да избирате въз основа на име и фамилия? Подизборът ще бъде много по-малко ефективен от директната заявка. Можете да получите пълното име, като използвате select обхват (ще бъде достъпен по същия начин като другите атрибути):

 Candidate.select("candidates.*, (first_name || ' ' || last_name) AS full_name").
           where(first_name: 'Antonov', last_name: 'Kolganov')

Актуализация: Ако наистина трябва да пренапишете горната заявка с подизбор в FROM клауза към ActiveRecord, можете да направите следното:

Candidate.from("(SELECT (candidates.first_name || ' ' || candidates.last_name) AS full_name, candidates.* FROM candidates) candidates").
          where(full_name: 'Anton Kolganov')

Т.е. като цяло можете да поставите всеки валиден SQL в методите на обхвата на ActiveRecord, включително select , from и т.н.



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

  2. Каква е разликата между единични и двойни кавички в PostgreSQL?

  3. Postgresql агрегатен масив

  4. Postgresql - Преномериране на колони

  5. Как да получа колона с последователни, нарастващи числа, без да липсват никакви числа?