SQL Oracle:查询以将两个表中的两列显示为一个并计入数值

时间:2020-03-06 19:28:35

标签: sql oracle

查询是:

我有一个成员表和一个阶段表,“ band_name”是成员表中的外键。

我需要显示阶段名称(stage_name)以及每个阶段将要执行多少成员。

到目前为止,我已经尝试了以下操作:

SELECT stage_name, member_ID,member.band_name
  FROM stage, member
 WHERE stage.stage_name = member.band_name
 ORDER BY stage_name, member.band_name, member_ID;

这会显示一个stage_name和三个成员,但不会显示为数字,例如3,而没有其他stage_names

我认为我可能需要使用COUNT,也可能需要使用INNER join?

仅供参考-我是SQL oracle的新手

感谢所有帮助。

1 个答案:

答案 0 :(得分:1)

您需要学习正确,明确,标准,可读的JOIN语法。逗号是历史。 JOIN不仅是未来,而且也是现在以及过去的大部分时间。

然后,您要LEFT JOINGROUP BY

SELECT stage_name, COUNT(m.member_ID)
FROM stage s LEFT JOIN
     member m 
     ON s.stage_name = m.band_name
GROUP BY s.stage_name 
ORDER BY s.stage_name;