mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
fas lv list: improved speed of query getting the lv by relocating studienplan exists check
This commit is contained in:
@@ -1123,27 +1123,32 @@ class lehrstunde extends basis_db
|
||||
-- if student is assigned to lehreinheit through lehreinheitgruppe.
|
||||
AND (
|
||||
lehreinheit_id IN (
|
||||
SELECT tbl_lehreinheit.lehreinheit_id
|
||||
FROM lehre.tbl_lehreinheitgruppe,
|
||||
tbl_benutzergruppe,
|
||||
lehre.tbl_lehreinheit
|
||||
WHERE tbl_lehreinheitgruppe.gruppe_kurzbz::text = tbl_benutzergruppe.gruppe_kurzbz::text
|
||||
AND tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitgruppe.lehreinheit_id
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz::text = tbl_benutzergruppe.studiensemester_kurzbz::text
|
||||
AND uid=".$this->db_add_param($student_uid)."
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
UNION
|
||||
SELECT tbl_lehreinheit.lehreinheit_id
|
||||
FROM lehre.tbl_lehreinheitgruppe,
|
||||
tbl_studentlehrverband,
|
||||
lehre.tbl_lehreinheit
|
||||
WHERE
|
||||
SELECT tbl_lehreinheit.lehreinheit_id
|
||||
FROM lehre.tbl_lehreinheitgruppe,
|
||||
tbl_benutzergruppe,
|
||||
lehre.tbl_lehreinheit,
|
||||
lehre.tbl_lehrveranstaltung
|
||||
WHERE tbl_lehreinheitgruppe.gruppe_kurzbz::text = tbl_benutzergruppe.gruppe_kurzbz::text
|
||||
AND tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id
|
||||
AND tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitgruppe.lehreinheit_id
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz::text = tbl_benutzergruppe.studiensemester_kurzbz::text
|
||||
AND uid=".$this->db_add_param($student_uid)."
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
UNION
|
||||
SELECT tbl_lehreinheit.lehreinheit_id
|
||||
FROM lehre.tbl_lehreinheitgruppe,
|
||||
tbl_studentlehrverband,
|
||||
lehre.tbl_lehreinheit,
|
||||
lehre.tbl_lehrveranstaltung
|
||||
WHERE tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitgruppe.lehreinheit_id
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz = tbl_studentlehrverband.studiensemester_kurzbz
|
||||
AND tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id
|
||||
AND tbl_studentlehrverband.studiengang_kz = tbl_lehreinheitgruppe.studiengang_kz
|
||||
AND tbl_studentlehrverband.semester = tbl_lehreinheitgruppe.semester
|
||||
AND
|
||||
(
|
||||
(
|
||||
tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitgruppe.lehreinheit_id
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz = tbl_studentlehrverband.studiensemester_kurzbz
|
||||
AND tbl_studentlehrverband.studiengang_kz = tbl_lehreinheitgruppe.studiengang_kz
|
||||
AND tbl_studentlehrverband.semester = tbl_lehreinheitgruppe.semester
|
||||
AND (
|
||||
(
|
||||
btrim(tbl_studentlehrverband.verband::text) = btrim(tbl_lehreinheitgruppe.verband::text)
|
||||
OR (tbl_lehreinheitgruppe.verband IS NULL OR btrim(tbl_lehreinheitgruppe.verband::text) = '')
|
||||
AND tbl_lehreinheitgruppe.gruppe_kurzbz IS NULL
|
||||
@@ -1154,29 +1159,22 @@ class lehrstunde extends basis_db
|
||||
AND tbl_lehreinheitgruppe.gruppe_kurzbz IS NULL
|
||||
)
|
||||
)
|
||||
AND student_uid=".$this->db_add_param($student_uid)."
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
)
|
||||
OR
|
||||
-- if student is directly assigned in studienplan
|
||||
EXISTS
|
||||
(
|
||||
WITH stud_lvb AS (
|
||||
SELECT studiengang_kz, semester, verband, gruppe, studiensemester_kurzbz
|
||||
FROM public.tbl_studentlehrverband
|
||||
WHERE student_uid=".$this->db_add_param($student_uid)."
|
||||
AND studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
-- add also lehreinheiten directly from Stundenplan
|
||||
OR EXISTS (
|
||||
SELECT 1 FROM lehre.tbl_stundenplan
|
||||
WHERE
|
||||
lehreinheit_id = tbl_lehreinheit.lehreinheit_id
|
||||
AND studiengang_kz = tbl_studentlehrverband.studiengang_kz
|
||||
AND (semester = tbl_studentlehrverband.semester OR semester IS NULL)
|
||||
AND (verband = tbl_studentlehrverband.verband OR verband IS NULL OR verband ='0' OR verband = '')
|
||||
AND (gruppe = tbl_studentlehrverband.gruppe OR gruppe IS NULL OR gruppe ='0' OR gruppe = '')
|
||||
AND gruppe_kurzbz IS NULL
|
||||
)
|
||||
SELECT 1 FROM stud_lvb
|
||||
JOIN lehre.tbl_lehreinheit le ON stud_lvb.studiensemester_kurzbz = le.studiensemester_kurzbz AND le.lehreinheit_id = tbl_lehreinheit.lehreinheit_id
|
||||
WHERE
|
||||
studiengang_kz = stpl.studiengang_kz
|
||||
AND (semester = stpl.semester OR stpl.semester IS NULL)
|
||||
AND (verband = stpl.verband OR stpl.verband IS NULL OR stpl.verband ='0' OR stpl.verband = '')
|
||||
AND (gruppe = stpl.gruppe OR stpl.gruppe IS NULL OR stpl.gruppe ='0' OR stpl.gruppe = '')
|
||||
AND stpl.gruppe_kurzbz IS NULL
|
||||
)
|
||||
) ";
|
||||
AND student_uid=".$this->db_add_param($student_uid)."
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
)
|
||||
)";
|
||||
}
|
||||
else
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user