sql >> Databasteknik >  >> RDS >> PostgreSQL

PG::InvalidColumnReference:ERROR:för SELECT DISTINCT måste ORDER BY-uttryck visas i urvalslistan

Du måste lägga till widget_steps.name till lista över valda kolumner:

SELECT  DISTINCT "widgets".*, "widget_steps.name" FROM "widgets" INNER JOIN "widget_steps" ON "widget_steps"."widget_id" = "widgets"."id" INNER JOIN "widget_steps" "active_steps_widgets" ON "active_steps_widgets"."id" = "widgets"."active_widget_step_id" WHERE "widgets"."account_id" = 1 AND "widgets"."completed_at" IS NULL AND (("widgets"."sequential" = 't' AND "widget_steps"."assigned_to" = 5 AND "widget_steps"."id" = "widgets"."active_widget_step_id" AND "widget_steps"."completed_at" IS NULL) OR ("widgets"."sequential" = 'f' AND "widget_steps"."assigned_to" = 5 AND "widget_steps"."completed_at" IS NULL)) ORDER BY sequential DESC, widget_steps.name ASC LIMIT 10 OFFSET 0

Detta bör inte ändra logiken i din fråga och kommer att fungera bra.

I Rails kan du använda select metod för att ställa in en lista över valda kolumner:

Widget.select('"widgets".*, "widget_steps.name"')

Hoppas detta skulle hjälpa.



  1. Fyll i gruppdata till en viss serie på Highcharts

  2. Hur byter man namn på något i SQL Server som har hakparenteser i namnet?

  3. Anslut till Oracle DB via JDBC-drivrutin

  4. Att få felfunktion to_date (tidsstämpel utan tidszon, okänd) existerar inte