我有两个查询,每个查询返回两列。他们是:
SELECT
visit.doctor_id,
COUNT(
visit.doctor_id)
FROM
visit
GROUP BY
visit.doctor_id
结果是
Doctor ID | Visit Count
4 20
5 30
和
SELECT
procedures.surgeon,
COUNT(
procedures.surgeon)
FROM
procedures
GROUP BY
procedures.surgeon
结果
Surgeon ID | Visit Count
3 8
9 13
我正在尝试将它们组合成一个包含所有4列的表。我可以稍后扩展它以添加更多内容。
我试过了UNION,但这只给了我两列,我试过FULL UNION,我试图使用SELECT(SELECT ....)AS'name',(SELECT ....)AS'NAME'但是那个没有用,因为每个select语句都会输出两列而不是一列。我也无法弄清楚如何使用JOIN函数来解决这个问题。
我想要的结果是
Doctor ID | Doctor Visit Count | Surgeon ID | Surgeon Operation Count
4 20 3 8
5 30 9 13
任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
当您组合两个没有公共字段的表时,可以使用笛卡尔积。
SELECT
*
FROM
(SELECT
visit.doctor_id,
COUNT(visit.doctor_id) AS 'COUNT'
FROM visit
GROUP BY visit.doctor_id) AS A,
(SELECT
procedures.surgeon,
COUNT(procedures.surgeon) AS 'COUNT'
FROM procedures
GROUP BY procedures.surgeon) AS B