加入和SQL查询与匹配表

问题描述 投票:0回答:1

所以我试着去选择多个表并执行从星表和电影台starNumb,mvNumb之间的比较,如果两者匹配然后,我希望它一起返回/显示starName用多少次StarName涉及的总计数mvNumb如果是有道理的。

到目前为止,我有这个,它不是打球,我敢肯定,这是很简单的东西,但挣扎。

SELECT STARNUMB.STAR, MVNUMB.MOVIE
FROM MOVIES JOIN STAR
where STARNUMB = MVNUMB;

我从这个想要的东西,看起来像下面这样作为输出。

列1 StarName = TestName1

列2 MovNumb = 1

也就是说,明星出现在电影1×时间。

表和FD的是这个样子:

粗体=主键

  • 星(starnummba,staraname,barthaplasa,staraborna,staradieda)
  • MovStar(mvNumb *,* starNumb)。 <-----外键
  • 电影(mvNumb,mvTitle,yrMde,mvType,暴击,MPAA,NOMS,awrd,dirNumb *)
  • 借(txNumb,mvNumb *,borDte,mmbNumb *)
  • 会员(mmbNumb,mmbName,mmbAddr,mmbCty,mmbSt,numRent,奖金,joinDate)
  • 董事(dirNumb,目录名,dirBorn,dirDied)**
sql oracle
1个回答
1
投票

有明星和电影之间的正对-M的关系,导致一个桥接表MovStar,则需要将其添加到加入。但只要你只是想计算每个明星的电影的数量,您需要加入只MoviesMovStar

SELECT m.starName, count(*)
FROM MOVIES m JOIN MovStar ms
  on m.STARNUMB = ms.starNumb
group by m.starName
order by 2 desc
© www.soinside.com 2019 - 2024. All rights reserved.