質問: ### Rails で、2つのMySQLテーブルで紐づいていないレコードを検索したいです ``` 以下のようなMySQLテーブルが2つあって、相互に紐づいているとします。 たとえば、Userモデルの「id:1」に該当するレコードは、Diaryモデルのカラム「user_id:1」に該当するレコード(Diaryモデルのid:1,2)と紐づいています。 この時、Diaryを投稿していないUserを検索するにはどうすればよろしいでしょうか? たとえば、Userモデルには「id:2」がありますが、Diaryモデルには、「user_id:2」が存在しないので、これが該当します。 |id|name|age| |:1|:taro:|30:| |:2|:nene:|20:| |:3|:bob:|0:| |||| ``` ### 発生している問題・エラーメッセージ ### 該当のソースコード ``` ソースコード ``` ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: あまりよろしくはないですが ``` user_table = User.arel_table diary_table = Diary.arel_table condition = diary_table[:user_id].eq(user_table[:id]) users_has_diary = User.where(Diary.where(condition).exists).all users_no_diary = User.where(Diary.where(condition).exists.not).all ```