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

Rails 3, ActiveRecord, PostgreSQL - Lệnh .uniq không hoạt động?

Khi lỗi nêu rõ for SELECT DISTINCT, ORDER BY expressions must appear in select list Do đó, bạn phải chọn rõ ràng điều khoản mà bạn đang đặt hàng.

Đây là một ví dụ, nó tương tự như trường hợp của bạn nhưng khái quát lại một chút.

Article.select('articles.*, RANDOM()')
       .joins(:users)
       .where(:column => 'whatever')
       .order('Random()')
       .uniq
       .limit(15)

Vì vậy, hãy bao gồm rõ ràng ORDER BY của bạn mệnh đề (trong trường hợp này là RANDOM() ) bằng cách sử dụng .select() . Như được hiển thị ở trên, để truy vấn của bạn trả về các thuộc tính Article, bạn cũng phải chọn chúng một cách rõ ràng.

Tôi hi vọng cái này giúp được; chúc may mắn



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL Full Text Search và Trigram Confusion

  2. Đơn giản hóa trường hợp lồng nhau khi câu lệnh

  3. Bắt ngày với chênh lệch múi giờ

  4. Thiếu `pg_tblspc` sau khi cài đặt phiên bản OS X mới nhất (Yosemite hoặc El Capitan)

  5. Psycopg2 không thích các tên bảng bắt đầu bằng chữ thường