LoginSignup
0
0

More than 1 year has passed since last update.

【Rails】左外部結合と内部結合

Last updated at Posted at 2021-11-28

環境

Ruby 3.0.2
Rails 6.1.4.1

前提条件

class Owner < ActiveRecord::Base
   has_many :dogs
end

class Dog < ActiveRecord::Base
  belongs_to :owner
end

左外部結合

左側のテーブルにしかないレコードも取得して結合する。
下の例でいうと、飼犬がいないオーナーのデータも取得できる。

 Owner.left_joins(:dogs)
=> SELECT `owners`.* FROM `owners` LEFT OUTER JOIN `dogs` ON `dogs`.`owner_id` = `owners`.`id`

内部結合

結合条件に一致するレコードのみを結合する。
下の例でいうと、飼犬がいるオーナーのデータのみ取得できる。

 Owner.joins(:dogs)
=> SELECT `owners`.* FROM `owners` INNER JOIN `dogs` ON `dogs`.`owner_id` = `owners`.`id`

参考

0
0
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
0
0