이 같은 것이 이미 다른 곳에서 논의 된 적이 있다면 사전에 사과하겠습니다. 그러나 그럴 경우 찾지 못했습니다 (그런 식으로 검색하는 방법조차 모르겠습니다) . 나는 "직원"과 "떠나라"라는 두 테이블에 합류하려고합니다. "직원"테이블의 모든 직원을 나열하고 '휴가'테이블 (휴가 테이블의 bdate 열)이 2014 년 1 월 1 일 (또는 현재 연도)보다 큰 "휴가"테이블의 휴가 데이터로 보고서를 채우고 싶습니다.). 문제는 모든 직원이 데이터를 남겨 두는 것이 아니므로 일반 가입은 실제로 데이터를 남긴 직원의 데이터 만 가져 오는 것입니다. 내가 원하는 것은 왼쪽 조인이지만, 실제로 두 테이블 모두에서 해당 직원의 데이터가있는 두 테이블의 레코드 만 가져올뿐입니다.하나의 테이블에서 조건을 가진 다중 테이블 조인
Select bunch_of_columns, leave.bdate, SUM(leave.Vhours) as TotalVacationHours, SUM(leave.shours) as TotalSickHours
from employees
left join leave on employees.id=leave.id
where employees.user_active ='1' AND leave.BDate >= '2014-01-01'
group by employees.id
Order by employees.user_last
이렇게하면 "2014-01-01"이후에 휴가 기록이있는 개인의 기록이 하나 생성됩니다. 휴가 테이블의 "bdate"열이 새 해의 날짜보다 큰 곳에서 휴가 테이블의 사용 가능한 데이터가있는 직원 테이블의 직원 레코드 목록을 원합니다.
+-----+----------+---------------+---------------+--------------+
|ID | Name | Vacation Hrs | Sick Hrs | Date |
+-----+----------+---------------+---------------+--------------+
| 1 | Bob | 5 | 8 | 2014-01-01 |
| 2 | Lucy | NULL | NULL | NULL |
| 3 | Jerry | NULL | NULL | NULL |
| 4 | Dieter | 3 | 5 | 2014-01-08 |
| 5 | Sprockets| NULL | NULL | NULL |
+-----+----------+---------------+---------------+--------------+
하지 않음이 :
+-----+----------+---------------+---------------+--------------+
| row | Name | Vacation Hrs | Sick Hrs | Date |
+-----+----------+---------------+---------------+--------------+
| 1 | Bob | 5 | 8 | 2014-01-01 |
| 4 | Dieter | 3 | 5 | 2014-01-08 |
+-----+----------+---------------+---------------+--------------+
쉽게 말할를 위해 가입에 날짜 조건을 적용입니다! 나는 그것이 왜 나에게 일어나지 않았는지 모르겠다. OGHaza와 DRapp, 정말 고마워요! 그것은 아름답게 작동합니다! – user3059142