gpt4 book ai didi

sql - rails : selecting columns from multiple tables

转载 作者:行者123 更新时间:2023-12-01 12:54:38 25 4
gpt4 key购买 nike

我是 Rails 新手。我有三个表 a, b, c

b 有 2 列:b1b2

c 有 2 列:c1c2

a 有 3 列:a1b1(外键)和 c1(外键)

我想通过为 a1 赋值来获得 distinct (b2, c2)

我试过类似的东西

a.find(:all, :joins => [:b, :c], :select => "b2, c2", :conditions => {:a => {:a1 => Time.now.midnight. ... Time.now}}, :group => "b2, c2")

这生成的 SQL 工作正常,我能够看到结果。但我认为由于我正在执行 a.find,所以我无法从结果集中检索 b2c2

我如何修改它以便我可以获得 b2c2

最佳答案

如果您将 :select 子句修改为:

foo = a.find(:all, 
:joins => [:b, :c],
:select => "distinct b.b2 as b2_value, c.c2 as c2_value",
:conditions => {:a => {:a1 => Time.now.midnight. ... Time.now}},
:group => "b.b2, c.c2")

我相信您会检索一组记录。然后尝试以下操作:

b2_value = foo.first["b2_value"]

这应该会检索到您要查找的值。

另外,请注意,在查询中,无论我在哪里使用它们,我都用列指定了表名——我认为这是更好的做法,并且当你有重复的列名时也能避免错误的查询(例如,created_atid)。

关于sql - rails : selecting columns from multiple tables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10488780/

25 4 0