2016-11-19 2 views
0

저는 현재 구축중인 시스템과 같은 새로운 IMDB에 문제가 있습니다. SQL 컬럼 이름이 모호합니다.

#1052 - Column 'stars.id' in field list is ambiguous 

여기에서 발견 한 모든 질문

당신이 접두사하지 않는 경우 관련 같다 :

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; 

을 나는 다음과 같은 오류가 발생합니다 : 내 특정 문제는 내가 실행할 때이다 열 테이블 이름을 가진 이름이나,이 경우, stars에 보내고 뷰 이름 그때 당신은 stars에서 선택하는

+0

'FROM stars'을'FROM movie_directors'로 바꾸십시오. – Hadi

+0

"FROM stars JOIN stars"뭐라고 요? 그게 의도적 인거야? – Strawberry

답변

2

다른보기를 구축 할 뷰를 쓰고있어 이후 INNER JOIN :

SELECT ... FROM stars INNER JOIN stars 

아마도 귀하의 질문에 따라 movie_directors에 가입하고 싶다고 생각합니다. 당신은 자체 조인을 사용하는

0

적절한 테이블 인스턴스

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

내가 제대로 앨리어싱되지 않기 때문에 그것의 생각을 참조하십시오 당신은 별명이 필요합니다 (이 경우 테이블이 시간을 사용 시작).

그것은 내부 가 anothername

0

당신이 stars 테이블에 두 개의 참조를 가지고 있기 때문에 그것은 모호한 것으로 보이는 별을 가입 별에서

선택

같은 ... 해야한다. FROM 조항과 첫 번째 내부 참여.

INNER JOIN stars 절 대신 movie_directors에 가입하려고합니다. 예 :

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 `movie_directors` ON `movie_directors`.`movie` = `stars`.`id` 
INNER JOIN `people_list` ON `movie_directors`.`director` = `people_list`.`id` WHERE `movie_directors`.`enabled` = 1; 

희망이 있습니다.