0

次のテーブルがあります

followTableカラム付き userid followingid

userTableカラム付き userid username

ここで、私がユーザー 1 であると仮定して、誰が私をフォローしているかを調べるために、クエリを実行します

SELECT userTable.username,  userTable.userid FROM userTable INNER JOIN followTable ON followTable.userid = userTable.userid   WHERE followTable.followingid = '1' order by followTable.datefollowed Desc

だから私はこれを入れてphpでエコーアウトを配列することができます

結果はこのようなものになります

username     userid   

john           2

joe            5

出力テーブルが次のようになるように、同じクエリを使用してユーザーをフォローしているかどうかを確認したい

username      userid     followinguser
john             2           0
joe              5           1

ここで、0 はユーザーをフォローしていないことを意味し、1 はユーザーをフォローしていることを意味します。

このクエリを実行する方法について、誰でも正しい方向に向けることができますか? 自己結合を使用しようとしましたが、役に立ちませんでした。

4

1 に答える 1

1
 SELECT t1.userid,t1.username ,COALESCE(t2.followornot, 0) as followornot 
 from user t1 left join 
  (SELECT f.userid as fid,1 as followornot
  FROM follow f where f.followingid='youruseridhere' ) t2 on t1.userid=t2.fid 

http://sqlfiddle.com/#!2/d45002/21

于 2013-04-18T04:03:01.760 に答える