I have two tables like below (date format: yyyy-MM-dd):
1) Table1 - EMPLOYEE_OVERTIMES (alias: EO)
EMPLOYEE_ID | OVERTIME_DATE
------------------------------------------------
1 | 2012-04-01
2 | 2012-08-14
3 | 2012-07-22
4 | 2012-10-30
5 | 2012-06-07
2) Table2 - EMPLOYEE_HOLIDAYS (alias: EH)
EMPLOYEE_ID | START_DATE | END_DATE |
-----------------------------------------
1 | 2012-03-28 | 2012-04-10
2 | 2012-01-14 | 2012-01-30
3 | 2012-07-15 | 2012-07-25
4 | 2012-10-10 | 2012-10-13
5 | 2012-06-01 | 2012-06-07
The tables EMPLOYEE_OVERTIMES and EMPLOYEE_HOLIDAYS are joined from other tables. I would like to find all records that meet folowing criteria: EH.START_DATE <= EO.OVERTIME_DATE <= EH.END_DATE
3) Result table
EMPLOYEE_ID | START_DATE | END_DATE | OVERTIME_DATE
-------------------------------------------------------
1 | 2012-03-28 | 2012-04-10 | 2012-04-01
3 | 2012-07-15 | 2012-07-25 | 2012-07-22
5 | 2012-06-01 | 2012-06-07 | 2012-06-07
You can use simple INNER JOIN
Would this work?
SQLFiddle demo