2016-11-23 1 views
0

가입해야하는 테이블이 두 개 있지만 예상 된 결과가 나타나지 않습니다.왼쪽에 null 값이 표시되지 않음 MySQL에 연결

표 1에는 모든 연도가 있고 표 2에는 일부 날짜에 대한 데이터가 있습니다. 나는 다음과 같은 한 :

표 1

+------------+ 
| dates | 
+------------+ 
| 2016-11-01 | 
| 2016-11-02 | 
| 2016-11-03 | 
| 2016-11-04 | 
| 2016-11-05 | 
| 2016-11-06 | 
| 2016-11-07 | 
| 2016-11-08 | 
| 2016-11-09 | 
| 2016-11-10 | 
+------------+ 

표 2

+------------+--------+----+ 
| dates | status | id | 
+------------+--------+----+ 
| 2016-11-01 |  1 | 1 | 
| 2016-11-02 |  1 | 1 | 
| 2016-11-03 |  1 | 1 | 
| 2016-11-04 |  1 | 2 | 
| 2016-11-05 |  1 | 2 | 
| 2016-11-06 |  1 | 2 | 
| 2016-11-07 |  1 | 1 | 
| 2016-11-08 |  1 | 2 | 
| 2016-11-09 |  1 | 1 | 
| 2016-11-10 |  1 | 1 | 
+------------+--------+----+ 

예상 결과

+------------+--------+ 
| dates | Status | 
+------------+--------+ 
| 2016-11-01 | 1  | 
| 2016-11-02 | 1  | 
| 2016-11-03 | 1  | 
| 2016-11-04 | null | 
| 2016-11-05 | null | 
| 2016-11-06 | null | 
| 2016-11-07 | 1  | 
| 2016-11-08 | null | 
| 2016-11-09 | 1  | 
| 2016-11-10 | 1  | 
+------------+--------+ 

현재 결과 : ID가 1이고 null 값을 생략 곳

select 
    a.dates, 
    b.status 
from table1 a 
left join table2 b on a.dates = b.dates 
where b.id = 1; 

불행하게도 그것은 단지 데이터를 보여줍니다

+------------+--------+ 
| dates | status | 
+------------+--------+ 
| 2016-11-01 |  1 | 
| 2016-11-02 |  1 | 
| 2016-11-03 |  1 | 
| 2016-11-07 |  1 | 
| 2016-11-09 |  1 | 
| 2016-11-10 |  1 | 
+------------+--------+ 

이 내가 현재 사용하고있는 쿼리입니다. null 값도 참조해야합니다. 내가 뭘 잘못하고 있니?

답변

0

where 조항 때문에 후 전체 결과 집합 에 적용되는 가입 : 당신이

select 
    a.dates, 
    b.status 
from table1 a 
left join table2 b on a.dates = b.dates and b.id = 1 
+0

친애하는 하나님이다 권리...!!! 너는 내 목숨을 구했어. 친구 야. !!! 감사 –

0

시도 : 버전에

select 
    a.dates, 
    b.status 
from table1 a 
left join table2 b on a.dates = b.dates AND b.id = 1 
; 

당신은 결과를 얻을 곳 b.id = 1 당신은 조인 조건에 where 절에서 b.id = 1 기준을 이동해야

관련 문제