All pastes #243243 Raw Edit

Anonymous

public text v1 · immutable
·published 2006-11-08 06:53 UTC
rendered paste body
TEACHERS
+----------------------+-------------+------+-----+---------+-------+
| 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 that have been stored in the sent_match table and that correspond to the same teacher_id and job_id ... which would indicate that they have already been sent.

SELECT teachers.name, teachers.arrival AS teachers_arrival, 
teachers.location, school_jobs.school_jobs_id,                                                 
                              sent_match.job_id, school_jobs.school,                                                         
                              school_jobs.city, school_jobs.arrival AS school_jobs_arrival,                                  
                              teachers.teacher_id, teachers.status, school_jobs.status                                       
                       FROM ( teachers JOIN school_jobs                                                                      
                         ON ( teachers.location = school_jobs.city OR teachers.location = 1 ) )                              
                       LEFT JOIN sent_match ON ( teachers.teacher_id = sent_match.teacher_id )                               
                       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 ))                                            
                       AND sent_match.teacher_id IS NULL