2014-06-16 2 views
0

나는 2 테이블 : 동물 및 espece (fr = '종') 있습니다. 동물에서 은 내가 espece.id (기본 키)와 데이터를 입력하고자하는 espece_id라는 이름의 열을 가지고 있고이 수행하려고 :같은 및 concat 가진 열 업데이트

UPDATE animal 
SET espece_id = espece.id 
WHERE espece LIKE concat('%', espece.name, '%'); 

테이블 세부 정보 :

animal: id, espece, espece_id 
espece: id, name, scientific_name 

animal.espece을 및 espece.name 같은 어느 정도 동일 : 나는이 업데이트에 LIKE를 사용하려고하는 이유는 그래서 "개", "유라시아 양치기이다 개"하지만, 그것은 제공 :

오류 코드 : 1054 알 수없는 열 'ESPEC e.name 'in'where 절 '

무엇이 잘못 되었나요?

+0

귀하의 SQL 문이 혼란 스럽다. 열 이름과 테이블 이름은 동일합니다. – Raptor

+0

글쎄 그건 내 것이 아니야. 내가 학교에 가져간 운동이야. D. 이 실습을 위해 (교수가 제공 한) 솔루션에 대한 정보는 가능한 모든 값에 대해 여러 세트로 이루어진 간단한 업데이트이며, 나는 단지 "더 간단한"방식으로 시도하려고합니다. – Alpagut

답변

1

당신은이 가입이 필요합니다

UPDATE animal AS a 
JOIN espece AS e ON a.espece LIKE concat('%', e.name, '%') 
SET a.espece_id = e.id 
+0

감사합니다. 훌륭한 작품입니다. – Alpagut