sql >> データベース >  >> RDS >> PostgreSQL

PG ::InvalidColumnReference:エラー:SELECT DISTINCTの場合、ORDERBY式を選択リストに表示する必要があります

    widget_steps.nameを追加する必要があります 選択した列のリストへ:

    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
    

    これにより、クエリのロジックが変更されることはなく、正常に機能します。

    Railsでは、selectを使用できます 選択した列のリストを設定する方法:

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

    これがお役に立てば幸いです。



    1. MySql-サイズVARCHAR

    2. jdbcを介したmysqlに関連する例外

    3. 2つの異なるテーブルからユーザーまたは管理者としてログインする

    4. 別のレコードが存在する場合は、グループ内のレコードの値を除外しますv2