每个

时间:2017-07-18 01:12:01

标签: sql phpmyadmin

我有两个查询,每个查询返回两列。他们是:

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

任何帮助将不胜感激。谢谢。

1 个答案:

答案 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