Twitterのようなサービスで特定のユーザ同士のフォロー情報を取得するSQLのサンプルです。
テーブル定義
次のようなテーブルがあるとします
CREATE TABLE follow
(
member
INT UNSIGNED NOT NULL,
follower
INT UNSIGNED NOT NULL);
取得用SQL
注:参照制約とかは省略しています
input_member
を自分のid
input_follower
を相手のidとすると
SELECT MAX(`follower`) AS `follow1`,MIN(`follower`) AS `follow2`
FROM `follower`
WHERE
(`member` = `input_member`
AND `follower` = `input_follower`)
OR
(`member ` = `input_follower`
AND `follower` = `input_member`);
判定方法
もし結果が返ってこなければお互いにフォローしていない
もしfollow1
とfollow2
が異なれば両思い
もしfollow1
がinput_member
と同じなら片思い
どれにも当てはまらなければ片思われです。