sql >> Databáze >  >> RDS >> PostgreSQL

ActiveRecord vnořený SELECT

Proč místo výběru na základě jména a příjmení spojujete? Podvýběr bude mnohem méně výkonný než přímý dotaz. Celé jméno můžete získat pomocí select rozsah (bude přístupný stejným způsobem jako ostatní atributy):

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

Aktualizace: Pokud opravdu potřebujete přepsat výše uvedený dotaz s podvýběrem v FROM klauzule ActiveRecord, můžete provést následující:

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

Obecně platí, že do metod rozsahu ActiveRecord můžete vložit jakýkoli platný SQL, včetně select , from , atd.



  1. získat obrázky z mysql pomocí php jquery ajax a zobrazit je na stránce html uvnitř DIV

  2. mysql měnící jedinečný klíč na primární (mariadb)

  3. Zlepšení výkonu UDF pomocí NULL ON NULL INPUT

  4. Opravte poškozenou databázi SQL během problému s upgradem