「ユーザー」と呼ばれる 1 つと「接続」と呼ばれる 2 つの mysql テーブルがあります。
テーブル users にはユーザーに関する情報があり、3 つの行があります。
mikha
guy
maricela
テーブル接続には、Twitter のようなユーザー間の接続があります (たとえば、mikha をフォローする maricela と maricela をフォローする mikha)。
Connections には次の行があります。
username1 | username2
--------------------------
guy | maricela
mikha | guy
mikha | maricela
mikha さんのフォロー数やフォローバック数などの情報を知りたいです。
次のクエリを使用します。
SELECT *, COUNT(DISTINCT connections.username1) AS count_following,
COUNT(DISTINCT connections.username2) AS count_followers
FROM users LEFT JOIN connections on connections.username1 = 'mikha' OR
connections.username2 = 'mikha' WHERE users.username = 'mikha'
期待される:
count_following = 2 (as mikha is following guy and maricela)
count_followers = 0 (no one following mikha yet)
実際:
count_following = 2
count_followers = 1
ありがとう よろしく マイケル