![]() |
Datenbank: MySql • Zugriff über: ADO
sql abfrage - tabellen vergleichen
Hallo Delphianer,
Ich habe folgendes Problem: ich benötige eine SQL Abfrage die mir aus einer Datenbank ausgibt, welche Zuegnisse von einem Schüler noch nicht geschrieben worden sind. Es gibt folgende Tabellen: Schüler - ID, Vorname, Nachname, usw, usw Klassen - ID, Klassenname SchülerKlassen - ID, IDSchüler, IDKlasse SchülerFächer - ID, IDSchüler, IDKlasse, IDFach Zeugnisse - ID, IDSchüler, IDKlasse, IDFach, Note, Zeugnistext Reicht das an Infos?? Ich bin für alle Hilfen dankbar... Gruß Phil |
Re: sql abfrage - tabellen vergleichen
SQL-Code:
Gruss
SELECT *
FROM schüler s INNER JOIN schülerfächer sf ON s.id = sf.idschüler WHERE NOT EXISTS (SELECT * FROM zeugnisse WHERE idschüler = s.id AND idfach = sf.id) Thorsten |
Re: sql abfrage - tabellen vergleichen
vielen dank, ich werde es sofort testen!!
Ich melde mich dann ob es funst...danke! Gruß Phil |
Re: sql abfrage - tabellen vergleichen
hallo ich habe die abfrage ausprobiert...sie funst!
jetzt muss man irgendwie rausfinden ob die daten die zurückkommen stimmen... nur wie?? Gruß Phil |
Re: sql abfrage - tabellen vergleichen
ich habe meine datenbank jetzt mal mit nur 3 datensätzen getestet und siehe da es funst. vielen dank erstmal!
Jetzt muss am ende aber folgendes raus kommen: der name von dem schüler und das fach wo das zeugnis fehlt. Jetzt kommt ja nur die Fach ID raus! gruß Phil |
Re: sql abfrage - tabellen vergleichen
Was sollte am Ergebnis nicht stimmen? Ich verstehe das Problem nicht.
Deshalb benutzt man doch eine Datenbank, da macht man ein paar Stichproben und wenn das ok ist dann sollte das stimmen. Außerdem ist diese Abfrage nun wirklich nicht kompliziert, das kann man doch leicht überblicken. Edit: Wo sind die existierenden Fächer gespeichert? Verwunderte Grüsse Thorsten |
Re: sql abfrage - tabellen vergleichen
also erstmal sry. das was raus kommt stimmt natürlich, ich habe mich ein bissel doof ausgedrückt.
In dem Datensatz der jetzt raus kommt, steht der name von dem schüler und die id von dem fach zu dem das zeugnis fehlt. Es müsste nur statt der id zu dem fach noch der fachname raus kommen. gruß Phil |
Re: sql abfrage - tabellen vergleichen
Wo sind die existierenden Fächer gespeichert?
|
Re: sql abfrage - tabellen vergleichen
in der tabelle fächer
|
Re: sql abfrage - tabellen vergleichen
Das hast du oben nicht definiert!
Vielleicht so...
SQL-Code:
SELECT vorname, nachname, fachname
FROM schüler s INNER JOIN schülerfächer sf ON s.id = sf.idschüler INNER JOIN fächer f ON sf.idfach = f.idfach WHERE NOT EXISTS (SELECT * FROM zeugnisse WHERE idschüler = s.id AND idfach = sf.id) |
Re: sql abfrage - tabellen vergleichen
ich habe es nochmal auf meine gegebenheiten von den feldnamen her angepasst, jedoch kommt kein ergebnis zurück. es kommt aber auch kein fehler!
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 WHERE NOT EXISTS (SELECT * FROM zeugnis WHERE id_schueler = s.id AND id_fach = sf.id_fach) |
Re: sql abfrage - tabellen vergleichen
Hast du in deiner Datenbank auch Constraints zwischen den Tabellen eingerichtet?
Ist die Tabelle "Fächer" eventuell leer bzw. enthält sie nicht alle Fächer? Diese Problematik kann nicht eintreten, wenn die Constraints gesetzt sind. |
Re: sql abfrage - tabellen vergleichen
die tabelle fächer ist nicht leer. es sind 3 einträge vorhanden. sonnst hätte es ja beim ersten test nicht funktioniert.
Was sind "Constraints" ?? Gruß Phil |
Re: sql abfrage - tabellen vergleichen
Schau mal
![]() Versuch es mal so...
SQL-Code:
Wenn jetzt etwas ausgegeben wird und die Spalte "fach" NULL liefert, dann fehlt das jeweilige Fach in der Tabelle "fächer" und du hast keine Constraints gesetzt.
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) Gruss Thorsten |
Re: sql abfrage - tabellen vergleichen
der code geht. es wird jedoch wieder nichts zurückgeliefert. es müsste ein eintrag raus kommen, da ein zeugnis fehlt!
gruß Phil |
Re: sql abfrage - tabellen vergleichen
Dann machst du irgendeinen Denkfehler.
Ist dieses fehlende Fach eines Schülers auch in seinen Fächern (schuelerfaecher) eingetragen? Edit: Kannst du nicht mal dein Beispiel zeigen? |
Re: sql abfrage - tabellen vergleichen
die erste abfrage hat ja funktioniert, die änderung ist ja eientlich nur, dass statt der fach id bei dem fehlenden zeugnis der fachname stehen soll.(Denkfehler schließe ich deswegen aus)
was für ein beispiel soll ich dir zeigen?? Gruß Phil Zitat:
|
Re: sql abfrage - tabellen vergleichen
Die erste Abfrage geht immer noch?
Dann kann es nur an der Tabelle "fächer" liegen. Du must da selber reinkriechen und Fehlersuche machen, ich kann das von hier nicht sehen. Reduziere das Problem auf eine Person und schau dir die entsprechenden Zeilen in den einzelnen Tabellen mal genau an. |
Re: sql abfrage - tabellen vergleichen
ich bastel mir nochmal die erste abfrage!
soll ich dir per vnc mal meine anwendung zeigen?Hilft das evtl.? |
Re: sql abfrage - tabellen vergleichen
Kannst du nicht für eine Person mal die Zeilen der Tabellen zeigen (Namen kannst du ja ändern)
|
Re: sql abfrage - tabellen vergleichen
ich bekomme die erste abfrage nicht mehr zum laufen... es ist glaube ich schon ein bissel spät...
würdest du mir morgen nochmal helfen?? gruß Phil |
Re: sql abfrage - tabellen vergleichen
Aber die erste Abfrage müsste doch diese gewesen sein...
SQL-Code:
Liefert die kein Ergebnis? Hast du Zeilen in deiner Datenbank verändert?
SELECT *
FROM schüler s INNER JOIN schuelerfaecher sf ON s.id = sf.id_schueler WHERE NOT EXISTS (SELECT * FROM zeugnis WHERE id_schueler = s.id AND id_fach = sf.id_fach) Sonst gehts morgen weiter... |
Re: sql abfrage - tabellen vergleichen
mir ist ein ganz übler fehler passiert warte mal...
ich habe durch irgendeinen dummen entf klick auf der tastertur die qry aus meinem dataset rausgenommen... jetzt teste ich nochmal mit dem neuen code... poste den nochmal bitte... |
Re: sql abfrage - tabellen vergleichen
alles funst!!! SUPER GEIL!!
DANKE FÜR DEINE HILFE... SRY FÜR MEINEN DUMMEN FEHLER!! lass morgen nochmal schreiben, dann erkläre ich dir das! Gute nacht und schlaf gut |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 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 by Thomas Breitkreuz