多表信息的sql条件比较

7dl7o3gd  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(317)

我想找回在电影中主演的电影明星的名字 Star Wars 谁是男性( M ).

StarsIn(movieTitle, movieYear, starName)
MovieStar(name, address, gender, birthdate)

我尝试了以下方法:

SELECT moviestar.name 
FROM StarsIn, moviestar 
WHERE movietitle='Star Wars' AND moviestar.gender = 'M'

但是,我从 moviestar.name 他们是男性。它应该只限于 Mark Hamill 以及 Harrison Ford . 我也得到了复制品。我做错什么了?

h6my8fg2

h6my8fg21#

您尚未联接这两个数据库表。

select s.starName
  from StarsIn s
  join MovieStar m
    on s.starName = m.name
 where s.movieTitle = 'Star Wars'
   and m.gender = 'M'

请参阅任何sql教程,例如sql联接

6pp0gazn

6pp0gazn2#

必须联接这两个表才能获取数据,缺少联接。请尝试以下操作-

SELECT ms.name 
FROM StarsIn si, moviestar ms
WHERE 
si.starName = ms.name
AND si.movietitle='Star Wars' 
AND moviestar.gender = 'M'

相关问题