首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL列名不明确

SQL列名不明确
EN

Stack Overflow用户
提问于 2016-11-20 04:57:38
回答 4查看 162关注 0票数 0

我正在构建一个新的IMDB系统,我遇到了问题。我的具体问题是当我运行以下命令时:

代码语言:javascript
复制
CREATE VIEW `directors` AS 
SELECT 
`stars`.`id` AS `movie_id`, 
`stars`.`title`,`stars`.`rating`, 
`stars`.`storyline`, 
`stars`.`star`, 
`people_list`.`name` AS `director` 
FROM `stars` 
INNER JOIN `stars` 
ON `movie_directors`.`movie` = `stars`.`id` 
INNER JOIN `people_list` 
ON `movie_directors`.`director` = `people_list`.`id` 
WHERE `movie_directors`.`enabled` = 1;

我得到以下错误:

代码语言:javascript
复制
#1052 - Column 'stars.id' in field list is ambiguous

我在这里发现的所有问题似乎都与没有在列名前加上表名或视图名有关,因为我正在编写一个视图来构建另一个视图

EN

回答 4

Stack Overflow用户

发布于 2016-11-20 05:03:20

您正在从stars中选择,然后在stars上选择INNER JOINing

代码语言:javascript
复制
SELECT ... FROM stars INNER JOIN stars

我认为您可能希望根据您的查询与movie_directors进行连接。

票数 2
EN

Stack Overflow用户

发布于 2016-11-20 05:03:59

您正在使用自连接(starts table被使用两次),在这种情况下,您需要一个别名来引用正确的表实例

代码语言:javascript
复制
  CREATE VIEW `directors` AS 
  SELECT 
      `stars`.`id` AS `movie_id`
    , `stars`.`title`
    ,`stars`.`rating`
    , `stars`.`storyline`
    , `stars`.`star`
    , `people_list`.`name` AS `director` 
  FROM `stars` 
  INNER JOIN `stars` as s2 ON `movie_directors`.`movie` = s2.`id` 
  INNER JOIN `people_list` ON `movie_directors`.`director` = `people_list`.`id` 
  WHERE `movie_directors`.`enabled` = 1;
票数 0
EN

Stack Overflow用户

发布于 2016-11-20 05:05:42

我认为这是因为您没有正确地使用别名。

它应该是这样的

选择...从星体内部加入星体作为另一个名字

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40697833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档