sql - 将两个选择查询与一个通用列组合,但结果不同
问题描述
我正在努力结合这两个 sql 查询以获得只有 3 列的表
SELECT M.name, COUNT(A.MusicianID) AS AlbumAppearance
FROM Album A, Musician M
WHERE A.MusicianID=M.MusicianID
GROUP BY M.name
SELECT M.Name,COUNT (Pr.MusicianID) AS SongAppearance
FROM Performs Pr, Musician M
WHERE Pr.MusicianID=M.MusicianID
GROUP BY M.name
解决方案
假设音乐家的名字是唯一的(这似乎是一个非常合理的假设),相关的子查询可能是做你想做的最简单和最好的表现方式:
SELECT m.*,
(SELECT COUNT(*)
FROM Album A
WHERE A.MusicianID = M.MusicianID
) as AlbumAppearance,
(SELECT COUNT(*)
FROM Performs Pr
WHERE Pr.MusicianID = M.MusicianID
) as SongAppearance
FROM Musician m;
推荐阅读
- javascript - 排序表Vue.js“TypeError:传播不可迭代实例的无效尝试”
- hadoop - 如何在浏览器中 GCP 实例之外的 hadoop 中访问我的 Namenode GUI
- special-characters - 如何在 Mule 3 dataweave 中映射特殊字符字段?
- firebase - 安全规则 Cloud firestore 检查文档是否包含值
- scala - Gatling 脚本中 .transform 的正确语法
- android - 仅当 ListRow 处于焦点时才将其调暗
- javascript - 动态地将属性添加到 css 类而不是元素
- python - 对不同的基数执行增量操作
- java - 有人可以解释一下这个Java代码吗?
- reactjs - 使用 react 获取 wordpress 帖子显示特殊字符而不是撇号