2016-04-29 167 views
0

如何使用orderuniq如何在PostgreSQL中使用uniq命令

auction.invoices.get_auction_invoices.item_invoices. 
joins("INNER JOIN users ON users.id = invoices.usable_id").order("users.first_name").uniq 

上面的查詢給我下面的錯誤:

這是我的範圍

範圍:item_invoices, - > {加入(:invoice_details)。凡( 「?invoice_details.invoiceable_type =」, 「項」)}

範圍:get_auction_invoices, - > {其中(:ID =>(item_invoices.skip_cancelled_invoice + donators.skip_cancelled_invoice))}

PG::InvalidColumnReference: ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list LINE 1: ...oice_details.invoiceable_type = 'Item') ORDER BY users.firs... : SELECT DISTINCT "invoices".* FROM "invoices" INNER JOIN "invoice_details" ON "invoice_details"."invoice_id" = "invoices"."id" INNER JOIN users ON users.id = invoices.usable_id WHERE "invoices"."eventable_id" = $1 AND "invoices"."eventable_type" = $2 AND "invoices"."id" IN (1132, 1131, 777, 777, 777, 3013, 3024, 3024, 3024, 3024, 3041, 3041, 3013) AND (invoice_details.invoiceable_type = 'Item') ORDER BY users.first_name

+0

你怎麼形容'在模型auction.invoices.get_auction_invoices.item_invoices'? –

+0

也請爲該行提供生成的SQL(使用'#to_sql'執行) –

+0

@МалъСкрылевъ,這是我在我的發票模型 – djrock

回答

1

試試這個:

auction.invoices.get_auction_invoices.item_invoices.\ 
select("invoices.*, users.*").\ 
joins("INNER JOIN users ON users.id = invoices.usable_id").\ 
order("users.first_name").\ 
uniq 
+0

它的工作,但FIRST_NAME不正確的順序 – djrock

+0

您可以使用組來代替uniq的 – cruncher

+0

我有已經嘗試過 – djrock