LoginSignup
8
5

More than 3 years have passed since last update.

pluckでテーブル間で重複したカラム名を指定する

Last updated at Posted at 2019-07-01

リファレンス

pluckは便利

便利ですが、

  • table_atable_bname という同名のカラムがある
  • table_a, bを join する
  • 任意のテーブルのnameカラムを指定して取得したい(場合によっては両方)

この場合、どう指定すれば良いでしょうか?
リファレンスからは読み取りづらい状態です。

エラー例

TableA.join(:table_b).pluck(:name)

# Mysql2::Error: Column ‘name’ in field list is ambiguous: SELECT ...

結論

  • 名前が重複している場合、シンボルを使わずに、テーブル名.カラム名 で指定します。
  • シンボルを使うとうまくいかないです。
  • 名前が被っているのを両方指定しても大丈夫です。
Model.pluck('table_a.name', 'table_b.name')

参考

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5