将具有不同模式的两个SELECT语句中的"生成"结果连接到一个表中

Mar*_*nov 7 mysql sql postgresql

所以我有以下SELECT语句:

SELECT COUNT(A.Award) AS US, SUBSTRING(CAST(M.Year as char(4)), 0 , 4)  AS Decade
FROM Movies M, Awards A
WHERE {SOME WHERE CLAUSE}
GROUP BY Decade;
Run Code Online (Sandbox Code Playgroud)

SELECT COUNT(*) AS Total, SUBSTRING(CAST(A2.Year as char(4)), 0 , 4) AS Decade
FROM Awards A2
WHERE {SOME WHERE CLAUSE}
GROUP BY Decade;
Run Code Online (Sandbox Code Playgroud)

第一个是"生成"带有列(US,Decade)的表,第二个是"生成"另一个带有列的表(Total,Decade).我想加入这两个表,以便得到一个表(US,Total,Decade).我该怎么做?

kni*_*ttl 21

将它们放在子查询中并执行以下操作JOIN:

SELECT a.US, a.decade, b.total FROM

  (SELECT COUNT(A.Award) AS US, SUBSTRING(CAST(M.Year as char(4)), 0 , 4)  AS Decade
  FROM Movies M, Awards A
  WHERE {SOME WHERE CLAUSE}
  GROUP BY Decade ) AS a

INNER JOIN

  (SELECT COUNT(*) AS Total, SUBSTRING(CAST(A2.Year as char(4)), 0 , 4) AS Decade
  FROM Awards A2
  WHERE {SOME WHERE CLAUSE}
  GROUP BY Decade) AS b

ON a.decade = b.decade
Run Code Online (Sandbox Code Playgroud)