Ich habe ein System, wo ein Benutzer Teil einer Reihe von "Läufen" ist, zu jedem "Lauf", können Kurse, Lehrer (Benutzer), Klassen und so hinzugefügt werden auf.Problem mit dem Abrufen bestimmter Daten basierend auf mehreren Faktoren in MySQL
Jeder Lehrer (Benutzer) hat seine Klassen & Kurse ausgewählt. Hier ist ein heruntergekommenes der Tabellen I, die relevant sind:
lam_run - The run in it self.
lam_run_course - Relational table that shows what runs has what courses
lam_teacher_course - Relational table that shows which teacher has which courses
lam_run_teacher - Relational table that shows what teachers are in what courses
Was ich will ist zu tun, um jeden Lehrer zeigen, die die für sie relevant sind läuft (basierend auf welche Kurse sie ausgewählt haben, in lam_teacher_course gesehen) aber an denen sie nicht schon teilnehmen.
Hier ist der MySQL-Code, den ich bisher habe, das nicht funktioniert:
$query_relevant_runs = "
SELECT DISTINCT
lam_run_course.run_id
FROM
lam_teacher_course,
lam_run_course,
lam_run, lam_run_teacher
WHERE
lam_teacher_course.user_id = '1'
AND
lam_teacher_course.course_id = lam_run_course.course_id
AND
lam_run_teacher.user_id != '1'";
Statt dieser Code alle Läufe zeigt, die relevant sind, aber es schließt nicht die Läufe der Benutzer ist bereits ..
Was kann ich tun, um das Problem zu beheben?
Ps. Sorry für schlechte Titel, keine Ahnung, was ich soll es genannt habe: S
Hier ist ein Link zu einem Teil der Datenbanken ist (der relevante Teil): Link!
I kann nicht helfen zu denken, dass etwas mit der JOIN falsch ist ... "lam_teacher_course.course_id = lam_run_course.course_id" aber da wir die Tabelle nicht haben ist wirklich schwer zu sagen, was es ist .. –
Würde es helfen, wenn Ich habe einen DB-Dump von phpmyadmin der relevanten Tabellen hinzugefügt? :) – Eax
Probieren Sie es aus - zumindest können wir versuchen, es zu debuggen. Es sieht so aus, als ob die Abfrage gut ist ... Ich sehe keine Syntaxfehler, also muss es die Logik sein. –