2011-09-30 6 views
0

가입하세요.SQL 내가 두 테이블을 내부 또는 외부

검색어 :

SELECT `users`.`id`, `users`.`username`,`users`.`clan`, `clans`.`crest` FROM `users` JOIN `clans` ON `users`.`username` LIKE '%gu%' 

출력 : 일족 인 경우

id username clan  crest  
2 gusar     26_760.gif 
3 gusar11  Tong  26_760.gif 

하는 빈 문장이 비어있을 ..하지만 것입니다 ... (나는 결과 다음 원하는

:

id username clan  crest  
2 gusar     
3 gusar11  Tong  26_760.gif 

답변

2

LIKE를 사용하여 한 테이블에서 다른 테이블로 조인하고 있습니다. 일반적으로이 작업을 수행 할 이유가 거의 없습니다. 대신 WHERE 절에서이를 원할 것이므로 외래 키를 사용하여 테이블간에 조인해야합니다.

당신은 LEFT OUTER 조인 (또는 왼쪽은 짧게 가입) 두 번째 테이블의 모든 행을 일치하도록 시도 할 수 있지만 경기가 없었다 경우 NULL 값을 표시하는 데 사용할

:

SELECT `users`.`id`, `users`.`username`,`users`.`clan`, `clans`.`crest` 
FROM `users` 
LEFT JOIN `clans` ON `users`.`clan` = `clans`.`clan` 
WHERE `users`.`username` LIKE '%gu%' 

사용자 테이블에서, 클랜 제목이 아닌 클랜 ID를 보유하는 것이 이상적입니다. 이 쿼리를 사용하여 검색을 수행하십시오.

SELECT `users`.`id`, `users`.`username`,`users`.`clan`, `clans`.`crest` 
FROM `users` 
LEFT JOIN `clans` ON `users`.`clanid` = `clans`.`id` 
WHERE `users`.`username` LIKE '%gu%' 
2

결과를 원하는 경우 f 첫 번째 테이블에서 두 번째 테이블에 일치하는 항목이없는 경우에도 LEFT OUTER JOIN을 사용하려고합니다.

0

SELECT `users`.`id`, `users`.`username`,`users`.`clan`, `clans`.`crest` FROM `users` LEFT JOIN `clans` ON `users`.`username` LIKE '%gu%' 
0

당신은 어떤 조건을 사용하여 테이블에 가입해야보십시오. 당신은 어디에서 사용해야하는지 ON을 사용하고 있습니다. 나는 users라고 가정한다. clanclans에 관한 것이다. clans? 이것을 시도하십시오 :

SELECT `users`.`id`, `users`.`username`,`users`.`clan`, `clans`.`crest` FROM `users` LEFT JOIN `clans` ON `users`.`clan` = `clans`.`clan` WHERE `users`.`username` LIKE '%gu%' 
관련 문제