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

ActiveRecord zagnieżdżony SELECT

Dlaczego łączysz, zamiast wybierać na podstawie imienia i nazwiska? Podselekcja będzie znacznie mniej wydajna niż zapytanie bezpośrednie. Możesz uzyskać pełną nazwę za pomocą select zakres (będzie dostępny tak samo jak inne atrybuty):

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

Aktualizacja: Jeśli naprawdę potrzebujesz przepisać powyższe zapytanie z podwyborem w FROM klauzuli ActiveRecord, możesz wykonać następujące czynności:

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

Ogólnie rzecz biorąc, możesz umieścić dowolny poprawny kod SQL w metodach zakresu ActiveRecord, w tym select , from itp.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql - Regex podzielona linia csv z cytatami potencjału

  2. Konwertowanie daty na format roczny przy użyciu Dbplyr

  3. Agreguj wartości w zakresie godzin, co godzinę

  4. Jak napisać podzapytanie w klauzuli From w django ORM

  5. Znajdź wszystkie przecięcia wszystkich zestawów zakresów w PostgreSQL