如何使用快捷语法 select schema/table/column in Sequel?

How to select schema/table/column in Sequel using the shortcut syntax?

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

> 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 驱动程序。

你很接近。我认为。 :-)

RDB[:store__albums].select(:title___album_title)

应该给你以下 SQL:

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

这不能接受吗?

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

相反,解决方案是使用较低级别的方法:

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