我試圖回答this question我在哪裏得到了這個問題。Rails 3查詢:使用'select'與'order'時出現錯誤
我有一個用戶模型有id
,email
和first_name
列。因此,在單個查詢中,我想要選擇具有不同first_name
的用戶,按email
對其進行排序並採用他們的ID
。
我該怎麼做?
什麼都不行:
User.select(:first_name).uniq.pluck(:id)
,因爲它觸發這個SQL
SELECT DISTINCT "users"."id" FROM "users"
。這是從用戶選擇不同的ID。但是,我們要選擇不同的FIRST_NAMEUser.order("email DESC").pluck(:id).uniq
SQL生成:
SELECT "users"."id" FROM "users" ORDER BY email DESC
。這是行不通的,因爲生成的sql不檢查first_name的唯一性。
我懷疑這個選擇是選擇一個單元格但不是一行 – asdjkag 2014-09-02 06:39:31
您的要求是不合理的。如果你區分first_name,你應該從一個first_name而不是一個id獲得許多id。 – 2014-09-02 10:47:08