2009-08-03 53 views
6

看起來Sequel的默認選擇是「select *」,當您添加一些連接時會導致各種問題。至少你最終會在你的對象中出現錯誤的ID(因爲會有多個「ID」列返回)。做類似續集選擇太多列

.select("people.*") 

似乎工作,但將對待字符串傳遞作爲列並引用它。到目前爲止,我不得不恢復到純粹的SQL來解決這個問題,但我知道必須有更好的方法。

回答

5

Sequel的默認行爲是選擇所有列,但很容易覆蓋。如果您想選擇只從一個表中的所有列:

.select(:people.*)

如果你想用文字SQL字符串:

.select('people.*'.lit)

+6

這些語法是不是爲我工作,因爲續集4.10。 `:people。*`抱怨未定義的方法*爲:people:Symbol`和`'。*'。lit`抱怨未定義的方法爲「people。*」:String`點亮。 `:'人。*'`最後只是搜索``人。*「`。儘管如此,.select_all(:people)`也能做到這一點。 – womble 2014-05-25 00:20:58