我必须得到一些数据,如果可能的话,应该在一个查询中完成 - 如果推动推动我总是可以写一些PHP逻辑来做两个,但我认为它可以做到这一点在一个查询中。我不知道怎么做!
这是我想要做的:
生成一个列表,显示作者的帖子总数。因此,我必须将COUNT
三个不同的列(reviewsID FROM reviews, featuresID FROM features & newsID FROM news
)和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 |
这可能吗?
答案 0 :(得分:1)
如果没有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.userLevel