diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql index 5fcac4ed09280aff0c14bf2ab9962e4bf8b6b1e2..50ae0a2078de6ae5347f332e3a5ebf27eadee255 100644 --- a/db/StoredProcedures.sql +++ b/db/StoredProcedures.sql @@ -1321,7 +1321,34 @@ END // +DROP PROCEDURE IF EXISTS SearchTeachers// +CREATE PROCEDURE `SearchTeachers` ( IN `FacultyID` INT, + IN `DepartmentID` INT, + IN `Last` VARCHAR(30) CHARSET utf8, + IN `First` VARCHAR(30) CHARSET utf8, + IN `Second` VARCHAR(30) CHARSET utf8 + ) + NO SQL +BEGIN + SELECT teachers.ID AS 'TeacherID', + teachers.LastName AS 'TeacherLast', + teachers.FirstName AS 'TeacherFirst', + teachers.SecondName AS 'TeacherSecond', + teachers.AccountID AS 'TeacherAccID', + job_positions.Name AS 'JobPositionName', + departments.ID AS 'DepID', + departments.Name AS 'DepName' + FROM `teachers` + INNER JOIN `departments` ON departments.ID = teachers.DepartmentID + INNER JOIN `job_positions` ON job_positions.ID = teachers.JobPositionID + WHERE ( DepartmentID IS NULL OR departments.ID = DepartmentID) AND + ( FacultyID IS NULL OR departments.FacultyID = FacultyID) AND + ( Last IS NULL OR ( teachers.LastName REGEXP CONCAT("^",Last,"*"))) AND + ( First IS NULL OR ( teachers.FirstName REGEXP CONCAT("^",First,"*"))) AND + ( Second IS NULL OR ( teachers.SecondName REGEXP CONCAT("^",Second,"*"))) + ORDER BY departments.FacultyID ASC, departments.Name ASC, teachers.LastName ASC, teachers.FirstName ASC, teachers.SecondName ASC; +END //