Sequel で別名を付けたりテーブルを指定したりする
Sequel でカラムに別名を付けたり、どのテーブルのカラムなのかを指定する方法のメモ。
require 'sequel' DB = Sequel.sqlite Sequel::Model.plugin :schema class Tbl < Sequel::Model unless table_exists? set_schema do primary_key :id end create_table end end p Tbl.select(:id).filter(:id => 1).sql # => "SELECT `id` FROM `tbls` WHERE (`id` = 1)" p Tbl.select(:id___pk).filter(:tbls__id => 1).sql # => "SELECT `id` AS 'pk' FROM `tbls` WHERE (`tbls`.`id` = 1)" p Tbl.select(:tables__id___pk).sql # => "SELECT `tables`.`id` AS 'pk' FROM `tbls`"
カラム名 + "___" + 別名 で別名を付ける。
テーブル名 + "__" + カラム名 で テーブルを指定。
アンダーバーを使ったカラム名は避けたい。