sql >> Databasteknik >  >> RDS >> PostgreSQL

ActiveRecord kapslad SELECT

Varför sammanfogar du istället för att välja utifrån för- och efternamn? Undervalet kommer att vara mycket sämre än direktfråga. Du kan få det fullständiga namnet genom att använda select scope (det kommer att vara tillgängligt på samma sätt som andra attribut):

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

Uppdatering: Om du verkligen behövde skriva om ovanstående fråga med ett underval i FROM till ActiveRecord kan du göra följande:

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

Dvs i allmänhet kan du lägga in valfri giltig SQL i ActiveRecord-omfångsmetoderna, inklusive select , from osv.



  1. Hur tar man bort en viss rad från mysql-tabellen med samma kolumnvärden?

  2. Laravel-relationsfel:Odefinierad egenskap:Illuminate\Database\Eloquent\Collection::$id på rad 1

  3. symfony2 dynamisk databasanslutning med doktrin

  4. @Tailable(spring-data-reactive-mongodb) motsvarande i spring-data-r2dbc