sql >> Database >  >> RDS >> Mysql

Activerecord:pluk specifieke kolommen en associatietellingen van verenigingen

Gebruik een geselecteerde zoekopdracht

Account.
  joins(schedules: :impressions).
  select("accounts.name as account_name, 
          schedules.date as schedule_date, 
          schedules.summary as schedule_summary, 
          count(impressions.id) as schedule_impression_count" ).
  group("accounts.name,schedules.date,schedules.summary") 

Als het in een enkele query moet, zullen de objecten reageren op de kolomalias 'zoals schedule_date en schedule_impression_count

Als u deze objecten voor andere gegevens in dezelfde weergave moet gebruiken, dan Account.eager_load(schedules: :impressions) zou ook moeten werken en zal ook een enkele query uitvoeren.




  1. De functie date_part gebruiken om de waarde per maand op te splitsen in elke dag en land

  2. Kan geen verbinding verkrijgen/maken vanuit de verbindingspool

  3. Laravel volgorde door heeftveel relaties

  4. PostgreSQL CSV importeren vanaf de opdrachtregel