加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 如何将几个子查询的结果加在一起?

发布时间:2020-12-12 07:00:27 所属栏目:MsSql教程 来源:网络整理
导读:我正在运行 MySQL查询,根据他们贡献的书评和食谱评论的数量对我的网站用户进行排名.在使用多个JOIN查询的初始问题之后,我已切换到一系列子查询,这要快得多.但是,虽然我可以从每个成员中提取评论数量,但我无法弄清楚如何将它们添加到一起,因此我可以按总数进行
我正在运行 MySQL查询,根据他们贡献的书评和食谱评论的数量对我的网站用户进行排名.在使用多个JOIN查询的初始问题之后,我已切换到一系列子查询,这要快得多.但是,虽然我可以从每个成员中提取评论数量,但我无法弄清楚如何将它们添加到一起,因此我可以按总数进行排序.

这是当前的查询:

SELECT users.*,(SELECT count(*) FROM bookshelf WHERE bookshelf.user_id = users.ID) as titles,(SELECT count(*) FROM book_reviews WHERE book_reviews.user_id = users.ID) as bookreviews,(SELECT count(*) FROM recipe_reviews WHERE recipe_reviews.user_id = users.ID) as recipereviews
FROM users

我需要将bookreviews和recipereviews加在一起以获得’reviewtotals’. MySQL不会允许你使用简单的语法来计算别名,但我认为还有另一种方法可以做到这一点?

解决方法

将其包装到子查询中:
SELECT  *,bookreviews + recipereviews AS totalreviews
FROM    (
        SELECT  users.*,(SELECT count(*) FROM recipe_reviews WHERE recipe_reviews.user_id = users.ID) as recipereviews
        FROM    users   
        ) q

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读