2012-08-07 7 views
-1
내가 튜토리얼 http://www.kendoui.com/blogs/teamblog/posts/12-01-18/get_rolling_with_kendo_ui_and_php_ndash_part_1.aspx

이 포스트 그레스 여기에서 Northwind를 포트를 포스트 그레스

와 장난 해요

에 MySQL의 쿼리를 번역하고 사용에 도움이 필요 : http://code.google.com/p/northwindextended/downloads/detail?name=northwind.postgre.sql

나는 데시벨에 실행이 쿼리를 얻을 수

:

SELECT TRIM(t.TerritoryDescription) AS TerritoryDescription 
      FROM Territories t     
      INNER JOIN EmployeeTerritories et ON t.TerritoryID = et.TerritoryID  
      INNER JOIN Employees e ON et.EmployeeID = e.EmployeeID   
      WHERE e.EmployeeID = 1 

오류 :

 
ERROR: column t.territoryid does not exist 
LINE 3:    INNER JOIN EmployeeTerritories et ON t.Territory 

하지만 표 territoriesterritoryid 열이 모두 있습니다.

+1

어떤 오류가 발생합니까? –

+0

은 – zcaudate

+2

오류로 질문을 업데이트했습니다. 대소 문자를 구분하는 열 ​​이름은 아마도? –

답변

1

문제는 데이터베이스를 만드는 데 사용했던 SQL에서, 당신이 인용 된 열을 사용하는 것입니다 이름 :

CREATE TABLE territories (
    "TerritoryID" character varying(20) NOT NULL, 
    "TerritoryDescription" bpchar NOT NULL, 
    "RegionID" smallint NOT NULL 
); 

인용 된 이름을 사용 했으므로 postgres는 대소 문자가 일치 할 것으로 예상합니다.

PostgreSQL의 자동 객체 생성시 및 쿼리시 값을 소문자로 모든 식별자 (예를 들어 테이블/열 이름) 폴드 그러나 그것은 기본적으로 모든 컬럼 명을 소문자로한다. 대/소문자가 혼합 된 식별자를 사용하려면 이중 문자 ("")를 사용하여 식별자를 이스케이프 처리해야합니다.

PHP pgsql documentation.

따라서 쿼리를 실행할 때 ""에 열 이름을 인용하십시오.

+0

위대한! 그것이 그것을 설명합니다. – zcaudate

0

감사 @Adrian 콘월, 그것은 대소 문자 구분 , 그래서이 이제 작동합니다

SELECT TRIM(t."TerritoryDescription") AS "TerritoryDescription" 
     FROM Territories t     
     INNER JOIN employeeterritories et ON t."TerritoryID" = et."TerritoryID"  
     INNER JOIN employees e ON et."EmployeeID" = e."EmployeeID"   
     WHERE e."EmployeeID" = 1