不是唯一的表/别名:'movie_direction' [关闭]
Posted
技术标签:
【中文标题】不是唯一的表/别名:\'movie_direction\' [关闭]【英文标题】:Not unique table/alias: 'movie_direction' [closed]不是唯一的表/别名:'movie_direction' [关闭] 【发布时间】:2018-04-24 10:07:24 【问题描述】:schema 我正在尝试获取詹姆斯卡梅隆导演的电影。
select mov_title
from movie
inner join movie_direction on movie.mov_id = movie_direction.dir_id
inner join movie_direction on director
where director.fname='james' and director.lname='Cameron';
【问题讨论】:
你能分享你的表架构吗? 你为什么要加入movie_direction
表两次?
我认为您想加入director
表以进行第二次加入,而不是再次尝试加入movie_direction
。你on
子句看起来也很可疑。
movie_direction 表包含电影 ID 和导演 ID,导演表包含导演 ID 和导演姓名,电影表包含电影标题
@Saima..我已经更新了我的答案中的查询检查它
【参考方案1】:
您不能在同一查询中引用movie_direction 表两次,除非在至少一个连接中为其指定别名。在您的一个或两个连接中提供别名。
即
inner join movie_direction md1 on your condition
inner join movie_direction md2 on your condition
你的查询应该是这样的
SELECT
*
FROM (movie INNER JOIN movie_direction ON movie.mov_id =
movie_direction.mov_id) INNER JOIN director ON movie_direction.dir_id =
director.dir_id
WHERE director.dir_fname='james' and director.dir_lname='Cameron';
【讨论】:
完全不清楚他们为什么要加入movie_direction
两次。我怀疑这只是应用多个谓词的一种乱码尝试。
@Saima..我已经更新了我的答案中的查询检查它
@RajeshPandya 在连接子句中给出语法错误(缺少运算符)
@Saima,我错误地输入了表名,我已经更正并仔细检查了它,对我来说工作正常。你在 mysql 中检查查询吗?
@RajeshPandya 在 ms-access 中【参考方案2】:
这应该可行:
SELECT
mov_title
FROM
movie
INNER JOIN
movie_direction director
ON
movie.mov_id = director.mov_id
WHERE
director.fname='james'
AND
director.lname='Cameron');
您的查询中的错误是您将 mov_id 与 dir_id 连接起来,并且只需要一个连接。
【讨论】:
这将产生一个关于director
不是表或别名的错误。
我的错。使用别名更新了查询。
我更倾向于第二次加入是一个失败,他们打算将movie_direction
加入到director
表中。当然,如果 OP 更加努力地描述他们的问题,就会清楚得多。
上述查询有效吗?如果没有,请分享示例数据和预期结果。
@RahulJain 要求输入 director.fname 的参数值以上是关于不是唯一的表/别名:'movie_direction' [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
错误代码:1066。不是唯一的表/别名:'circle_call_prefixes'
不是唯一的表/别名:'movie_direction' [关闭]
发生数据库错误错误号:1066 不是唯一的表/别名:[重复]