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.