PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

PG ::InvalidColumnReference:ERROR:for SELECT DISTINCT, ORDER BY biểu thức phải xuất hiện trong danh sách lựa chọn

Bạn cần thêm widget_steps.name vào danh sách các cột đã chọn:

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

Điều này sẽ không thay đổi logic truy vấn của bạn và sẽ hoạt động tốt.

Trong Rails, bạn có thể sử dụng select phương pháp đặt danh sách các cột đã chọn:

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

Hy vọng điều này sẽ hữu ích.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự cố khi thiết lập cơ sở dữ liệu postgreSQL cho dự án django

  2. Bản dịch quan hệ không tồn tại sau khi chuyển sang Rails 3.2.1

  3. Nhóm và đếm các sự kiện trên mỗi khoảng thời gian, cộng với tổng số lần chạy

  4. lấy bảng JOIN dưới dạng mảng kết quả với PostgreSQL / NodeJS

  5. Làm cách nào để viết một truy vấn Django với một truy vấn con như một phần của mệnh đề WHERE?