2013-10-13 2 views
0

다음은 내가 작성한 테이블의 복제본입니다. 내 목표는 단순히 두 번째 테이블에서 찾을 수없는 첫 번째 테이블에서 유일한 id_num을 선택하는 것입니다.mysql에서 고유 ID 선택

나는 아래의 코드를 일을 시도했지만 어떻게 든, 나는 빈 결과

에게
SELECT `first_table`.name FROM `first_table` 
INNER JOIN `second_table` 
ON `first_table`.id_num = `second_table`.id_num 
WHERE `first_table`.name = `second_table`.name 

첫 번째 테이블지고 유지 :

id_num | name 
    301  | Bobby 
    123  | George 
    25  | Vicky 

두 번째 테이블 :

id_num | name 
    301  | Bobby 
    435  | George 
    25  | Vicky 

내 욕망 결과 I 찾고 있습니다 :

id_num | name 
435  | George 
+2

사용하여이 시도'원하는 결과에 id_num'는'123' 대신'해야 435' 귀하의 요구 사항에 따라 – sarwar026

+0

'WHERE' 절이 필요합니까? – tommyd456

답변

3

LEFT JOIN이 여기에서 작동합니다.

SELECT `first_table`.name FROM `first_table` 
LEFT JOIN `second_table` 
ON `first_table`.id_num = `second_table`.id_num 
WHERE `second_table`.id_num is NULL 

참고 사항이 유용한 인포 그래픽

enter image description here

+0

친절하게 표현하기 ..............! –

+0

이미지 크레디트는 @kingkero btw로 이동합니다 ... – sarwar026

1

NOT IN

select `id_num` , name from `table2` where name not in (
                SELECT t1.name FROM `table1` t1 
                INNER JOIN `table2` t2 
                ON t1.id_num = t2.id_num) 

DEMO HERE

+1

왜이 구조를 사용하면 안되나요? http://sqlfiddle.com/#!2/46934/17 대 인덱스 예제 http://sqlfiddle.com/ #! 2/b773a/1 결론 LEFT JOIN은 많은 수의 레코드에서 더 잘 확장됩니다 –

+0

올바른 것을 ...... ......! –