在续集中,可以使用: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驱动程序。
答案 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"
这是不可接受的吗?