rendered paste bodyTEACHERS
+----------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+-------------+------+-----+---------+-------+
| name | varchar(50) | NO | | NULL | |
| birthyear | smallint(6) | NO | | 0 | |
| nationality | varchar(20) | NO | | NULL | |
| email | varchar(50) | NO | | NULL | |
| aftercare | tinyint(1) | YES | | NULL | |
| country_code | varchar(8) | NO | | NULL | |
| phone | varchar(22) | NO | | NULL | |
| calltime | varchar(40) | NO | | NULL | |
| from_time | varchar(4) | NO | | NULL | |
| until_time | varchar(4) | NO | | NULL | |
| timezone | char(3) | NO | | NULL | |
| location | smallint(6) | NO | | NULL | |
| status | tinyint(4) | NO | | 0 | |
| arrival | date | YES | | NULL | |
| gender | varchar(8) | NO | | NULL | |
| in_korea | varchar(10) | NO | | NULL | |
| inkorea | mediumtext | NO | | NULL | |
| university_education | mediumtext | NO | | NULL | |
| experience | mediumtext | NO | | NULL | |
| introduction | text | NO | | NULL | |
| advertise | varchar(50) | NO | | NULL | |
| ip | varchar(17) | YES | | NULL | |
| recruiter_notes | text | NO | | NULL | |
| pic_upload | varchar(60) | NO | | NULL | |
| submit_time | timestamp | YES | | NULL | |
| start_date | date | NO | | NULL | |
| teacher_id | varchar(36) | NO | PRI | NULL | |
| recruiter | varchar(20) | YES | | NULL | |
| date_of_birth | date | YES | | NULL | |
+----------------------+-------------+------+-----+---------+-------+
29 rows in set (0.10 sec)
SENT MATCH
+------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| teacher_id | varchar(36) | NO | | NULL | |
| job_id | varchar(36) | NO | | NULL | |
| teacher_response | tinyint(1) | YES | | NULL | |
| job_response | tinyint(1) | YES | | NULL | |
| teacher_notes | text | NO | | NULL | |
| job_notes | text | YES | | NULL | |
| deleted | tinyint(1) | NO | | 0 | |
| success | tinyint(4) | NO | | 0 | |
+------------------+-------------+------+-----+---------+-------+
8 rows in set (0.02 sec)
SCHOOL JOBS:
+---------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+--------------+------+-----+---------+-------+
| contact | varchar(19) | NO | | NULL | |
| school | varchar(29) | NO | | NULL | |
| arrival | date | YES | | NULL | |
| recruiter_notes | text | NO | | NULL | |
| email | varchar(40) | NO | | NULL | |
| phone | varchar(40) | NO | | NULL | |
| foreign_teacher | varchar(200) | NO | | NULL | |
| school_description | text | NO | | NULL | |
| postal_address | varchar(200) | NO | | NULL | |
| city | smallint(6) | NO | | 0 | |
| website_address | varchar(40) | NO | | NULL | |
| ticket_money | tinyint(1) | NO | | 0 | |
| accomodation | tinyint(4) | NO | | 0 | |
| salary | smallint(6) | NO | | 0 | |
| kindergarten | tinyint(1) | NO | | 0 | |
| elementary | tinyint(1) | NO | | 0 | |
| middle_school | tinyint(1) | NO | | 0 | |
| high_school | tinyint(1) | NO | | 0 | |
| adults | tinyint(1) | NO | | 0 | |
| number_teachers | tinyint(4) | NO | | 0 | |
| teacher_description | text | NO | | NULL | |
| gender | varchar(4) | NO | | NULL | |
| contract | varchar(60) | NO | | NULL | |
| picupload | varchar(60) | NO | | NULL | |
| status | smallint(6) | NO | | 0 | |
| school_jobs_id | varchar(36) | NO | PRI | NULL | |
| calendar_date | varchar(10) | NO | | NULL | |
+---------------------+--------------+------+-----+---------+-------+
27 rows in set (0.00 sec)
QUERY: this is a matching query to give me a list of all the teachers and the schools that match the criteria and that haven't already been sent. I want be able to exclude the matches in sent_match that correspond to the same teacher_id and job_id ... which would indicate that they have already been sent.
SELECT teachers.name, school_jobs.school
FROM teachers
LEFT JOIN school_jobs ON ( teachers.location = school_jobs.city OR teachers.location = -1 )
WHERE teachers.status != -1
AND school_jobs.status != -1
AND ( teachers.arrival BETWEEN DATE_SUB( school_jobs.arrival, INTERVAL 20 DAY )
AND DATE_ADD( school_jobs.arrival, INTERVAL 20 DAY )) ;