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'
我想知道我是否必须进行多个查询或使用子查询?什么是最佳实践?那么我将如何编写查询?