2013-04-02 3 views
0

2 테이블 일치의 필드를 기준으로 값을 yes 또는 no로 설정하는 것에 대해 Previous Question이 있습니다. 나는 쿼리가 generalsource.firstinventor을 점검하려고 노력하고 다른 "예"를 삽입하거나 inventor.inventorfull 일치하는 경우 "아니오" 결과는 다음 코드이었다 삽입하고 : I 때까지, 환상적 일일치하는 2 개의 필드를 기준으로 예 또는 아니요 값을 반환합니다.

UPDATE i 
SET LeadInventor = 
    CASE 
     WHEN fi.FirstInventorName IS NULL THEN 'No' 
     ELSE 'Yes' 
    END 
FROM Inventor i 
    LEFT JOIN FirstInventor fi 
    ON i.InventorFirst + ' ' + i.InventorLast = fi.FirstInventorName 

MySQL에 넣으려고했는데 구문에 무슨 문제가 있는지 알 수 없습니다. 어떻게 수정해야합니까? UPDATE

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM Inventor i  LEFT JOIN FirstInventor fi  ON i.InventorFirst + ' ' + i.' at line 7 
+0

오류 메시지는 일반적으로 힌트를 제공합니다. 네가 뭐래? –

+0

어떤 오류가 발생하고 있습니까? –

+0

오류 코드 : 1064. SQL 구문에 오류가 있습니다. 올바른 구문을 보려면 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. FROM Inventor i LEFT JOIN FirstInventor fi on i.InventorFirst + ''+ i. 7 호선에서 –

답변

2

CONCAT 문자열

CONCAT(i.InventorFirst, ' ', i.InventorLast) 

같이 http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat :는 또한, 당신의 업데이트 문에 구문 문제가 될 것 같습니다

UPDATE 
    Inventor i 
    LEFT JOIN FirstInventor fi ON CONCAT(i.InventorFirst, ' ', i.InventorLast) = fi.FirstInventorName 
SET LeadInventor = 
    CASE 
     WHEN fi.FirstInventorName IS NULL THEN 'No' 
     ELSE 'Yes' 
    END 

더 많은 정보를 다음과 같이이 있어야한다

+0

은 여전히 ​​줄에서 오류를 던졌습니다. –

+0

@JohnnyB 죄송합니다. 구문의 나머지 부분을 놓쳤다는 것을 확신하지 못했습니다. 지금 시도하십시오. 응답을 업데이트했습니다. – Akash

+0

'오류 코드 : 1146. 표 'sharppatentdb.firstinventor' 존재하지 않는다. '라는 이름의 관례에 잘못된 것이있다. 그러나 나는 무엇을 모른다. 하나의 테이블은 generalsource이고 다른 테이블은 발명가입니다 –

관련 문제