我必须获取一些数据,如果可能的话,这些数据应该在一个查询中完成-如果到了紧要关头,我总是可以编写一些PHP逻辑在两个查询中完成,但我认为可以在一个查询中完成。我不知道怎么做到的!
这是我想要做的:
生成一个列表,其中显示按作者列出的帖子总数。因此,我必须从三个不同的表(reviewsID FROM reviews, featuresID FROM features & newsID FROM news)中COUNT三个不同的列,然后将它们SUM在一起以提供一个总数。必须使用WHERE userID = THE_ID对这些进行限制,才能拥有单个用户。
同时,我想要一个更简单的查询,它可以从数据库userRealName and userLevel中获取有关他/她的一些信息。
SELECT userRealName, userLevel FROM user WHERE (userLevel = 'a' OR userLevel = 'e' OR userLevel ='r')最终的表格应该如下所示:
*userRealName*userLevel*articles*
|------------|---------|--------|
|The user |e |87 |
|Another user|r |34 |这个是可能的吗?
发布于 2010-01-26 07:37:33
如果没有MySQL在这里测试,这真的很难做到,但我认为这样的东西会起作用:
SELECT u.userRealName, u.userLevel, COUNT(t.articleID)
FROM user u,
(
SELECT userID, reviewsID articleID FROM reviews
UNION ALL
SELECT userID, featuresID articleID FROM features
UNION ALL
SELECT userID, newsID articleID FROM news
) t
WHERE u.userID = t.userID
AND (u.userLevel = 'a' OR u.userLevel = 'e' OR u.userLevel ='r')
GROUP BY u.userRealName, u.userLevelhttps://stackoverflow.com/questions/2136448
复制相似问题