SELECT cf.FK_collection, c.collectionName,
uf.FK_userMe, uf.FK_userYou,
u.userId, u.username
FROM userFollows as uf
INNER JOIN collectionFollows as cf ON uf.FK_userMe = cf.FK_user
INNER JOIN collections as c ON cf.FK_collection = c.collectionId
INNER JOIN users as u ON uf.FK_userYou = u.userId
WHERE uf.FK_userMe = 2
やあみんな。
私はこのクエリを作成しようとしていますが、もちろん、私が望んでいるものである複数の行を返すため、もちろん望んでいませんが、そうではありません。説明してみましょう:
サイトでユーザーのアクティビティを表示するために、collectionFollows と userFollows の両方を取得しようとしています。しかし、これを行うと、ユーザーが 1 つしかフォローしていない場合でも、userFollows から複数の行が作成されます。これは、複数の collectionFollows をフォローしているために発生します。
したがって、結果を表示すると、次のように返されます。
John is following 'webdesign'
John is following 'Lisa'
John is following 'programming'
John is following 'Lisa'
複数のクエリを作成する必要があるか、サブクエリを使用する必要があるかを知りたいですか? ベストプラクティスは何ですか?そして、どのようにクエリを書くのでしょうか?