ハッキングバカ

プログラミングに関するメモ

ユーザがフォローしているユーザを得るクエリ[Mariadb]

Clojure の Web フレームワークである Luminus では RailsActiveRecord のように SQL クエリが抽象化されているわけではなく、(デフォルトでは)自分で SQL 文を書く必要がある。
そんなわけで少しずつ SQL を学んでいるが、JOIN 周りなどはまだ理解が浅い。
良く有るであろうフォロワーを得るクエリが必要なときに少しはまった。

users: [id, name, email]
relationships: [id, followed_id, follower_id]

のようなテーブルがあって、あるユーザが中間テーブルを通してフォローしているユーザのリストが欲しいときにどうやるかが調べても見つからなかったので、以前作った Rails アプリがどういうクエリを発行しているのかをカンニングした。

SELECT users.name, users.email, FROM users
INNER JOIN relationships ON relationships.followed_id = users.id
WHERE relationships.follower_id = :user_id;