INNER JOIN

1. INNER JOINを1個

Ruby on Railsのコード

PlayOwner.joins(:play_cat).where(id: 2)
  .select(:id, :name, 'play_cats.name as cat_name')

生成されるSQL

SELECT `play_owners`.`id`, `play_owners`.`name`, play_cats.name as cat_name FROM `play_owners` INNER JOIN `play_cats` ON `play_cats`.`play_owner_id` = `play_owners`.`id` WHERE `play_owners`.`id` = 2

飼い主(id)飼い主猫名
2ミケランジェロレオ
2ミケランジェロドナルド

2. INNER JOINを2個

Ruby on Railsのコード

PlayOwner.joins(:play_cat, :play_prefecture).where(id: 2)
 .select(:id, :name, 'play_cats.name as cat_name', 'play_prefectures.name as prefecture_name')

生成されるSQL

SELECT `play_owners`.`id`, `play_owners`.`name`, play_cats.name as cat_name, play_prefectures.name as prefecture_name FROM `play_owners` INNER JOIN `play_cats` ON `play_cats`.`play_owner_id` = `play_owners`.`id` INNER JOIN `play_prefectures` ON `play_prefectures`.`play_owner_id` = `play_owners`.`id` WHERE `play_owners`.`id` = 2

飼い主(id)飼い主猫名都道府県
2ミケランジェロレオ神奈川県
2ミケランジェロドナルド神奈川県