【実現したいこと】
userテーブルにblockedというカラム(0 or 1)を追加し、ブロックされているユーザーを検索できるようにしたい。
【前提】
今回登場するテーブル
line_webhook_events
カラム: event_type,line_user_id
↑
ユーザーにブロックされたら"unfollow"、ブロック解除されたら"follow"がレコード(event_type)として登録される。
line_user
カラム:id
があります。
この2つのテーブルは互いにアソシエーションになっております。
ーーーーーーーーーーーーー
【現状思いついていること】
ブロックされているLINEユーザーを取り出し、
単にunfollowというweb_hook_eventsを抽出し、そこに紐づくユーザーレコードを取り出せばいいと思っていたのですが、
「unfollow後にブロック解除(follow)されたユーザーは除かなければならない」ということに気が付きました。
まとめると
「該当するユーザーから送信された最後のwebhookのevent_typeがunfollowである」という条件で検索したいということになります。
これをsqlで抽出したいとおもっているのですが、どのような検索をかければいいのか思いつきません。
イメージは
①unfollowのレコードを取り出し、そこに紐づくユーザーを抽出
②ユーザーの最新のweb_hookがunfollowかどうか確かめる
ができればなと考えております。
これを一度のコマンドで実現することは可能でしょうか。
知見をお持ちの方がいらっしゃいましたらご教示頂けますと幸いです。
回答1件
あなたの回答
tips
プレビュー