如何使用快捷语法在Sequel中选择schema / table / column?

时间:2015-11-27 15:32:33

标签: ruby sequel

在续集中,可以使用:a__b生成"a"."b"之类的SQL。当我们想要一个完全限定的语句到达列时,这种语法不起作用,例如:

> Sequel.version
=> "4.25.0"
> puts RDB[:store__albums].select(:store__albums__title___album_title).sql
SELECT "store"."albums__title" AS "album_title" FROM "store"."albums"
# I expected:
# SELECT "store"."albums"."title" AS "album_title" FROM "albums"."title"

我知道我可以使用Sequel.lit生成正确的值,但我希望流利的语法支持这一点。 Sequel是否支持开箱即用?

我正在使用PostgreSQL驱动程序。

2 个答案:

答案 0 :(得分:1)

根据Jeremy Evans的说法,Sequel不支持fluent syntax to 3 levels deep

相反,解决方案是使用较低级别的方法来执行此操作:

puts RDB[:store__albums].
  select(Sequel.qualify(:store, :albums__title).
           as(:album_title)).sql

答案 1 :(得分:0)

你关闭了。我认为。 :-)

RDB[:store__albums].select(:title___album_title)

应该为您提供以下SQL:

SELECT "title" AS "album_title" FROM "store"."albums"

这是不可接受的吗?