복붙노트

[SQL] 어떻게이에 상관 이름이 조인 SQL 해결할 수 있습니다?

SQL

어떻게이에 상관 이름이 조인 SQL 해결할 수 있습니다?

나는 그 수율에게 두 개의 서로 다른 테이블에서 같은 이름을 가진 세 개의 필드에 가입하면된다. 내 SQL 쿼리를 실행하려고하면, VS는 나에게 다음과 같은 오류를 제공합니다.

나는이 필드를 구별하기 위해 "있는 그대로"를 사용하기 위해 노력했습니다,하지만 난 작동 해결책을 발견하지 않았습니다. 이것은 내가 실행 해요 SQL 쿼리입니다 :

SELECT Countries.Name AS Country, PoliticalFigures.Name AS President, PoliticalFigures.Name AS VicePresident FROM Countries
LEFT OUTER JOIN PoliticalFigures ON Countries.President_Id = PoliticalFigures.Id
LEFT OUTER JOIN PoliticalFigures ON Countries.VicePresident_Id = PoliticalFigures.Id

이 코드에서 명백한 아니라면, 이들은 테이블입니다.

(참고, 내 응용 프로그램에서 테이블과 필드는 다른 이름을 가지고있다. 내가 그들에게이 예를 명확하고 다른 사람에게 희망의 관련성을 위해 일반화하고있다.)

(내가 사용하는 도구는 비주얼 웹 개발자 2010 Express와 SQL Server 2008 Express에 있습니다.)

해결법

  1. ==============================

    1.대신 PoliticalFigures 각 참조 테이블 별칭을 사용합니다 :

    대신 PoliticalFigures 각 참조 테이블 별칭을 사용합니다 :

    SELECT 
      Countries.Name AS Country, 
      P.Name AS President, 
      VP.Name AS VicePresident
    FROM
      Countries
      LEFT OUTER JOIN PoliticalFigures AS P ON Countries.President_Id = P.Id
      LEFT OUTER JOIN PoliticalFigures AS VP ON Countries.VicePresident_Id = VP.Id
    
  2. ==============================

    2.테이블 별칭에 대한 각 참조 보내기

    테이블 별칭에 대한 각 참조 보내기

    SELECT
        Countries.Name AS Country,
        P.Name AS President,
        VP.Name AS VicePresident
    FROM Countries
    LEFT JOIN PoliticalFigures P ON Countries.President_Id = P.Id
    LEFT JOIN PoliticalFigures VP ON Countries.VicePresident_Id = VP.Id
    
  3. ==============================

    3.는 SQL 표준에서 특유의 '테이블의 별명은'상관의 이름과 특유의 '열 별명이'절로서라고라고합니다. 당신이 혼란 두 용어가 보인다.

    는 SQL 표준에서 특유의 '테이블의 별명은'상관의 이름과 특유의 '열 별명이'절로서라고라고합니다. 당신이 혼란 두 용어가 보인다.

  4. ==============================

    4.당신은 그 별칭을 제공하기 위해 테이블에 AS를 사용해야합니다 :

    당신은 그 별칭을 제공하기 위해 테이블에 AS를 사용해야합니다 :

    SELECT Countries.Name AS Country, Pres.Name AS President, Vice.Name AS VicePresident FROM Countries
    LEFT OUTER JOIN PoliticalFigures AS Pres ON Countries.President_Id = Pres.Id
    LEFT OUTER JOIN PoliticalFigures AS Vice ON Countries.VicePresident_Id = Vice.Id
    
  5. from https://stackoverflow.com/questions/8956577/how-can-i-correct-the-correlation-names-on-this-sql-join by cc-by-sa and MIT license