Ruby でサクッと DB にアクセスするときに Sequel をよく使っています。
同名カラムを持つテーブルをJOINするときはどちらのテーブルのカラムかを指定しますが、Sequelでの指定方法を忘れがちなので備忘録がてらメモを残します。
下記のようなフォーマットで指定します。
Sequel[:table][:column]
tag テーブルの slug カラムなら↓のようになります。
Sequel[:tag][:slug]
サンプル
@db[:tag].left_join(:tag_items, tag_id: :id, type: "source") .select(Sequel[:tag][:id], Sequel[:tag_items][:id]) .where(name: source_tags) .sql
生成するSQL
SELECT `tag`.`id`, `tag_items`.`id` FROM `tag` LEFT JOIN `tag_items` ON ((`tag_items`.`tag_id` = `tag`.`id`) AND (`tag_items`.`type` = 'source')) WHERE ((`name` IN ('hoge'))