mysql查询连接表来创建新闻源

时间:2013-07-11 15:09:04

标签: database mysqli news-feed

我想从3个表中检索行 - LikeTable,ClosetTable,FollowTable来显示一个人正在关注的所有用户的活动。这是一个网站。 ClosetTable是用户产品的表。 LikeTable是以下产品和关注者的表格。

目前,我有

SELECT c.user, c.productName
FROM ClosetTable AS c
LEFT JOIN FollowTable AS f ON c.user = f.isFollowed
WHERE f.follows = 'tony'

这将返回人的行,'tony'跟随productname。但是,我想以相同的方式完全使用LikeTable和FollowTable中的行。那么你能建议一种方法只做一个查询来获取所有3个表中的行吗?

2 个答案:

答案 0 :(得分:0)

更多人加入:

SELECT c.user, c.productName
FROM ClosetTable AS c
LEFT JOIN FollowTable AS f ON c.user = f.isFollowed
JOIN LikeTable as l on c.user = l.liked
WHERE f.follows = 'tony'

或类似的东西。您不限于一个JOIN。

答案 1 :(得分:0)

你可以试试看起来像这样的东西:

SELECT c.user, c.productName
FROM FollowTable AS f
INNER JOIN ClosetTable AS c ON c.user = f.isFollowed
INNER JOIN LikeTable AS l ON c.user = l.userliked
WHERE f.follows = 'tony'

我对字段名称做了一些假设,因为你没有提供表格的结构。

另外,我建议您将FollowTable放在FROM子句中,然后将它连接到ClosetTable,因为您在WHERE子句中放了f.follows ='tony'。

否则,删除WHERE子句并将条件放在INNER JOIN中。 类似的东西:

LEFT JOIN FollowTable AS f ON c.user = f.isFollowed AND f.follows = 'tony'