Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi sql abfrage - tabellen vergleichen (https://www.delphipraxis.net/110414-sql-abfrage-tabellen-vergleichen.html)

Delphi-Phil 17. Mär 2008 22:46

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:
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)
Gruß Phil

omata 17. Mär 2008 22:50

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.

Delphi-Phil 17. Mär 2008 22:51

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

omata 17. Mär 2008 22:56

Re: sql abfrage - tabellen vergleichen
 
Schau mal hier.

Versuch es mal so...
SQL-Code:
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)
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.

Gruss
Thorsten

Delphi-Phil 17. Mär 2008 22:59

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

omata 17. Mär 2008 23:02

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?

Delphi-Phil 17. Mär 2008 23:08

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:

Ist dieses fehlende Fach eines Schülers auch in seinen Fächern (schuelerfaecher) eingetragen?
Ja ist es!

omata 17. Mär 2008 23:11

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.

Delphi-Phil 17. Mär 2008 23:12

Re: sql abfrage - tabellen vergleichen
 
ich bastel mir nochmal die erste abfrage!


soll ich dir per vnc mal meine anwendung zeigen?Hilft das evtl.?

omata 17. Mär 2008 23:15

Re: sql abfrage - tabellen vergleichen
 
Kannst du nicht für eine Person mal die Zeilen der Tabellen zeigen (Namen kannst du ja ändern)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz