您显示的基本查询开头是错误的.您不能将表别名用作选择列表中的列.选择x StarName
错误.我假设您要查看列starname,因此您需要将其指定为x.starname
.
您也不能只列出该where
条款中的条件.多个条件必须与and
或组合or
.在你的情况下,这应该是一个and
.
所以你问题的基本查询应该是:
select x.starname from StarsIn x where x.movieTitle = 'avatar' and x.movieYear = 2009;
from
使用JOIN
关键字在子句中完成连接表,使用关键字定义连接条件,该ON
关键字应比较包含相同值的两个表中的列.这通常是一个表的主键列和另一个表的相应外键列.
在您的示例中,我假设starsin.starname
匹配,MovieStar.name
因此连接条件应该在这两列之间:
select x.starname from StarsIn x JOIN moviestar m ON x.starname = m.name --<< this is the JOIN where x.movieTitle = 'avatar' and x.movieYear = 2009 and m.gender = 'male';