"tbl_english"테이블에 "word"열이 있습니다. "german_word"및 "english_word"열을 포함하는 테이블 tbl_translation도 있습니다.SQL - 조회 테이블의 참조 데이터를 기반으로 행 업데이트
tbl_translation은
그래서 내가하고 싶은 것입니다 tbl_english의 모든 독일어 단어 '열 "단어"가 있는지 조회 테이블을 있어야하는데;
각 tbl_english.word 들어 tbl_translation.german_word 반복 값과 매칭을 찾는다. 경기 이 존재하는 경우,
의도는 룩업 테이블 tbl_translation
에서 올바른 번역 tbl_english에 존재하는 모든 악성 독일어 단어를 대체하는 것입니다 tbl_translation에서 현재 행에서 tbl_translation.english_word의 값 tbl_english.word를 업데이트지금까지 내가 생각해내는 것은 이것입니다.
UPDATE tbl_english SET word =
(SELECT english_word FROM tbl_translation
WHERE tbl_english.word = german_word)
WHERE word IN
(SELECT german_word FROM tbl_translation
WHERE tbl_english.word = german_word)
그러나 첫 번째 하위 선택으로 인해 동일한 단어 나 다른 단어가 여러 개있을 경우 실패합니다. 문제를 해결할 수있는 간단한 방법이 있습니까?
예 :
tbl_english 포함; 소녀 프라우 보이 기린 바움
tbl_translation 포함 (독일어, 영어); 남성, 여성 여성, 여성,
그래서 tbl_english에서 나는 다음과 같은 결과를보고 싶습니다. 여성 여성 보이 기린 바움
편집 : tbl_english의 모든 단어가 번역 테이블의 참조 행을하지 않습니다. 편집 2 : 예제 추가
아마도 예제를 보여 주어야합니다. 영어 단어가 여러 개의 동등한 독일어를 사용할 수 있다면, 원하는 단어를 정의해야합니다. "악성 단어"를 식별하는 방법을 보여줄 수 있습니다. 그것은 tbl_translation에 전혀 존재하지 않는 것입니까? 만약 거기에 있지만 다른 영어 단어의 번역은 무엇입니까? –
여러 고유 독일어 단어가 하나의 영어 단어로 번역 될 수 있다고 가정하십시오. 하나의 독창적 인 독일어 단어는 하나 이상의 번역을 갖지 않습니다. 또한 '불량'단어를 식별하는 유일한 방법은 tbl_translation에있는 경우입니다. – cc0
수정 사항이 맞지 않습니다. tbl_english의 단어가 tbl_translation에 행이없는 경우 어떤 독일어 단어를 선택합니까? 가장 재미있는 하나? 샘플 데이터를 보여주십시오. –