SELECT*FROM A_T at, Aufgaben a, A_J
WHERE(
at.t_id =2OR at.t_id =5)AND a.a_id = at.a_id
AND a.a_id = A_J.a_id
AND at.a_id = A_J.a_id
AND a.a_id
IN(SELECT aj.a_id
FROM A_J AS aj
WHERE aj.j_id =5OR aj.j_id =4)GROUPBY a.a_id
LIMIT0,30
Welchen Sinn macht „ODER“ in der Aufgaben-Auswahl? Ich würde Themenwahl und Jahrgangswahl eigentlich immer mit UND verknüpfen. Wenn ich dann nur nach Themen suche, steht Jahrgänge auf „alle“.
Beispiel (lang): Suche Optik-Aufgaben für Klassen 8 oder 9:
SELECT*FROM((((Aufgaben
INNERJOIN A_T ON Aufgaben.a_id = A_T.a_id)INNERJOIN Themen ON A_T.t_id = Themen.t_id)INNERJOIN A_J ON Aufgaben.a_id = A_J.a_id)INNERJOIN Jahrgaenge ON A_J.j_id = Jahrgaenge.j_id)WHERE
Themen.t_name ='Optik'AND(Jahrgaenge.j_name ='8'OR Jahrgaenge.j_name ='9')
oder kürzer über die IDs:
SELECT*FROM((Aufgaben
INNERJOIN A_T ON Aufgaben.a_id = A_T.a_id)INNERJOIN A_J ON Aufgaben.a_id = A_J.a_id)WHERE
A_T.t_id =5AND(A_J.j_id =4OR A_J.j_id =5)
Zum Anzeigen innerhalb eines Themenblocks ohne Dubletten (hier nur Aufgaben-Name):
SELECTDISTINCT Aufgaben.a_name FROM((Aufgaben
INNERJOIN A_T ON Aufgaben.a_id = A_T.a_id)INNERJOIN A_J ON Aufgaben.a_id = A_J.a_id)WHERE
A_T.t_id =5AND(A_J.j_id =4OR A_J.j_id =5)
Eingebaute Abfrage im Aufgaben-Overview
SELECTDISTINCT at.t_id, at.a_id, a.a_id, a.a_name, t.t_id, t.t_name, a.b_benutzername
FROM(((Aufgaben AS a
INNERJOIN A_T AS at ON a.a_id = at.a_id)INNERJOIN Themen AS t ON at.t_id = t.t_id)INNERJOIN A_J AS aj ON a.a_id = aj.a_id)WHERE at.t_id =38AND(aj.j_id =-1OR aj.j_id =1OR aj.j_id =2OR aj.j_id =3OR aj.j_id =4OR aj.j_id =5OR aj.j_id =6OR aj.j_id =7OR aj.j_id =8OR aj.j_id =9)ORDERBY a.a_name
Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information