2015-01-20 2 views
1

mysql에 2 개의 테이블이 있습니다. 나는 그들과 조인하고 싶지만 두 번째 테이블에서 일치하는 데이터가 없어도 NULL을 표시해야하지만 조인해야합니다.ON 조건에 mysql에서 일치하는 데이터가없는 경우 NULL을 얻는 방법

table1 

id | name 
----------- 
1 | name1 
2 | name2 
3 | name3 

와 두 번째 테이블 내가 쿼리

SELECT t1.name,t2.amount 
FROM table1 t1 
LEFT JOIN table2 t2 ON t1.id = t2.id 
WHERE t2.service=1 

다음 시도하지만 이후 NAME2 반환하지 않습니다

output 

name | amount 
-------------- 
name1 | 10 
name2 | NULL 
name3 | 20 

table2 

id | service | amount 
------------------------ 
1 | service1 | 10 
2 | service2 | 20 
3 | service1 | 20 
4 | service3 | 10 

내가 필요로하는 출력은, 두 번째 탭에 일치하는 ID가 없습니다. 르. 어떻게해야합니까?

+0

일치하는 ID가 없습니다. ids 1, 2 및 3도 두 번째 테이블에 있습니다. – GolezTrol

+0

그 where 절은 무엇입니까? – Ajit

+0

WHERE 조건을 참조하십시오. 서비스 ID 1을 부여했습니다. 따라서 두 번째 테이블에서 일치하는 데이터가 없습니다. –

답변

3

where 절은 left joininner join *으로 바꿉니다. 가입 당신의 ON 절에 조건을 넣어

SELECT t1.name,t2.amount 
FROM table1 t1 
LEFT JOIN table2 t2 ON t1.id = t2.id 
        AND t2.service = 1 

당신은 당신의 조인 된 테이블의 데이터에 where 절에 필터 *. 이로 인해 데이터가 강제로 필터링됩니다.

+0

고마워요! –

관련 문제