テーブル
notes
id | title | body |
---|---|---|
1 | おはよう | おはおはおはおは |
2 | こんにちは | こんこんこんこん |
3 | こんばんは | こんこんこんこん |
likes
id | note_id | user_id |
---|---|---|
1 | 1 | 1 |
2 | 2 | 2 |
3 | 2 | 2 |
4 | 3 | 3 |
やりたいこと
「notesの全レコードと、noetsに結合したlikesレコード(user_id = 1)の情報を取得」
結論
sample.rb
# user.id = 1
user = User.find_by(email: "test@gmail.com")
Note.joins(
<<~SQL
LEFT OUTER JOIN `likes` ON `likes`.`note_id` = `notes`.`id`\
AND `likes`.`user_id` = #{user.id}
SQL
)
取得結果
id | title | body | id | note_id | user_id |
---|---|---|---|---|---|
1 | おはよう | おはおはおはおは | 1 | 1 | 1 |
2 | こんにちは | こんこんこんこん | |||
3 | こんばんは | こんこんこんこん |