![]() |
Datenbank: MySql • Zugriff über: ADO
sql abfrage
Hallo,
ich habe folgende SQL Abfrage:
SQL-Code:
Die Abfrage funktioniert auch super. Jetzt habe ich aber eine Sache die ich noch zufügügen muss, es soll nur bei den Schülern aus einer bestimmten Klasse gesucht werden. Die Schüler sind in der Tabelle "SchülerKlasse" (ID, IDSchüler, IDKlasse) verbunden. In der Tabelle SchülerFächer ist auch das Feld KlasenID vorhanden, dort wird die Klasse gespeichert in der der Schüler das Fach hat.
SELECT vorname, nachname, fach
FROM schüler s INNER JOIN schuelerfaecher sf ON s.id = sf.id_schueler LEFT JOIN fächer f ON sf.id_fach = f.id WHERE NOT EXISTS (SELECT * FROM zeugnis WHERE id_schueler = s.id AND id_fach = sf.id_fach) Gruß Phil |
Re: sql abfrage
Ohne Gewähr:
SQL-Code:
SELECT vorname, nachname, fach
FROM schüler s INNER JOIN schuelerklasse sk ON sk.id_schueler = s.id INNER JOIN schuelerfaecher sf ON sf.id_klasse = sk.id_klasse LEFT JOIN fächer f ON sf.id_fach = f.id WHERE sk.id = :gesuchte_klasse AND NOT EXISTS (SELECT * FROM zeugnis WHERE id_schueler = s.id AND id_fach = sf.id_fach) |
Re: sql abfrage
danke,
jetzt habe ich eins vergessen, könntest du es so ändern das er für die gesammte abfrage nur die schüler nimmt die aus einer bestimmten sind. Jetzt zum testen vllt mal die Klasse mit der ID 1. Gruß Phil |
Re: sql abfrage
Ersetz doch einfach :gesuchte_klasse durch 1 ;)
|
Re: sql abfrage
Liste der Anhänge anzeigen (Anzahl: 2)
es kommen zu viele einträge raus.
ich habe zwei bilder angehangen, einmal falsch einmal richtig. das richtige ist ohne den klassenzusatz im sql code gemacht. gruß Phil |
Re: sql abfrage
hat denn keiner mehr eine idee???
Gruß Phil |
Re: sql abfrage
Wenn Du noch 1 1/2 Stunden warten kannst, schau ich zu Hause nochmal drüber.
|
Re: sql abfrage
okay das wäre sehr lieb.
Vielen Dank, bis nachher... Gruß Phil |
Re: sql abfrage
Hmm... wenn es so auch nicht funktioniert, muss ich mir mal eine Zeichnung machen.
SQL-Code:
SELECT vorname, nachname, fach
FROM schüler s INNER JOIN schuelerklasse sk ON sk.id_schueler = s.id INNER JOIN schuelerfaecher sf ON sf.id_klasse = sk.id_klasse AND sf.id_schueler = s.id LEFT JOIN fächer f ON sf.id_fach = f.id WHERE sk.id = :gesuchte_klasse AND NOT EXISTS (SELECT * FROM zeugnis WHERE id_schueler = s.id AND id_fach = sf.id_fach) |
Re: sql abfrage
danke
ich teste es gleich, bin grade unterwes...bis heute abend! Gruß Phil |
Re: sql abfrage
Der LEFT JOIN war nur ein Test (gestern,
![]()
SQL-Code:
Gruss
SELECT vorname, nachname, fach
FROM schüler s INNER JOIN schuelerfaecher sf ON s.id = sf.id_schueler INNER JOIN fächer f ON sf.id_fach = f.id INNER JOIN schülerklassen sk ON s.id = sk.id_schueler WHERE id_klasse = :id_klasse AND NOT EXISTS (SELECT * FROM zeugnis WHERE id_schueler = s.id AND id_fach = sf.id_fach) Thorsten |
Re: sql abfrage
Es wäre nett gewesen, auf den anderen Thread zu verlinken :?
|
Re: sql abfrage
sry ist mir auch grade eingefallen. ich hätte es verlinken sollen...
Welchen SQL Code soll ich denn jetzt testen?? Den hier?ß
SQL-Code:
gruß Phil
SELECT vorname, nachname, fach
FROM schüler s INNER JOIN schuelerfaecher sf ON s.id = sf.id_schueler INNER JOIN fächer f ON sf.id_fach = f.id INNER JOIN schülerklassen sk ON s.id = sk.id_schueler WHERE id_klasse = :id_klasse AND NOT EXISTS (SELECT * FROM zeugnis WHERE id_schueler = s.id AND id_fach = sf.id_fach) |
Re: sql abfrage
also ich bin echt glücklich es funst nun...
ich habe den sql code am ende verwendet:
SQL-Code:
Es ist alles genau wie ich es mir vorgestellt habe.
SELECT vorname, nachname, fach
FROM schüler s INNER JOIN schuelerfaecher sf ON s.id = sf.id_schueler INNER JOIN fächer f ON sf.id_fach = f.id INNER JOIN schülerklassen sk ON s.id = sk.idschueler WHERE idklasse = :KID AND NOT EXISTS (SELECT * FROM zeugnis WHERE id_schueler = s.id AND id_fach = sf.id_fach) Jetzt aber noch eine sache die mir eingefallen ist: Das was wir jetzt mit der Klasse gemacht haben, könnte man das auch mit einem Fach machen? So das er nur die Zeugnisse ausgibt, die in einer Klasse bei einem Fach fehlen. Dann hat der User die Option zu wählen was er haben will! Gruß Phil |
Re: sql abfrage
Hab doch ein bißchen Fantasie, natürlich geht das. Wieso auch nicht...
SQL-Code:
SELECT vorname, nachname, fach
FROM schüler s INNER JOIN schuelerfaecher sf ON s.id = sf.id_schueler INNER JOIN fächer f ON sf.id_fach = f.id INNER JOIN schülerklassen sk ON s.id = sk.idschueler WHERE idklasse = :KID AND sf.id_fach = :FID AND NOT EXISTS (SELECT * FROM zeugnis WHERE id_schueler = s.id AND id_fach = sf.id_fach) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz