Autor Beitrag
Bronstein
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Do 14.06.07 07:49 
Sorry für den Titel, mir ist aber keiner eingefallen, mit dem ich dieses Problem beschreiben kann

Ich habe zwei Tabellen. In der einen Tabelle stehen Beurteilungen und in der anderen die Beurteilungskriterien:
Tabelle Beurteilung hat folgende Felder:
KartenID, Kartename, KriteriumID, Text

Tabelle Beurteilungskriterien hat folgende Felder:
KriteriumID, Text

Die Tabellen sind also über die Spalte KriteriumID verknüpft.

Jetzt möchte ich herrausbekommen bei welcher Karte noch nicht alle Kriterien ausgefüllt sind.

Das Ergebnis sollte dann so aussehen:
KartenID, Kartenname, KriteriumID, Text (von Beurteilung)
1, Test, 1, sehr spannend
1, Test, 2,
1, Test, 3, lustig
2, Aussichtskarte, 1, ganz okay
2, Aussichtskarte, 2, ganz okay
2, Aussichtskarte, 3,

So sehe ich jetzt, dass bei der Karte 1 für die KriteriumID 2 keine Bewertung abgegeben wurde und bei der Karte 2 für das Kriterium 3 keine Bewertung abgegeben wurde.

Habe jetzt mal folgendes versucht:
SELECT KartenID, Kartename, Beurteilung.KriteriumID, Text FROM Beurteilung INNER JOIN Beurteilungskriterien ON Beurteilung.KriteriumID = tblProjekt.KriteriumID

Hier sehe ich nur die Kriterien bei denen was abgegeben wurden
Habe diese Abfrage auch mit Left Join und Right Join versucht, doch ich bekomme dasselbe Ergebnis

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Do 14.06.07 07:52 
Hi,

ein LEFT JOIN mit einer Abfrage auf Is Null sollte das richtige Ergebniss prüfen, sonst müsste man es mit In (SELECT...) versuchen, was aber nicht performant ist und das LEFT JOIN zu bevorzugen ist.

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Do 14.06.07 08:00 
Oder man erstellt eine View :)

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Do 14.06.07 08:02 
Oder du arbeitest mit VBA in einer Abfrage oder machst eine SP draus, aber auf welchem DBMS arbeiten wir denn? ;)

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Do 14.06.07 08:08 
Wenn ich mich richtig erinner, arbeitet Bronstein auf MySQL;

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
Bronstein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Do 14.06.07 08:21 
@ene
SELECT Beurteilung.KartenID, Beurteilung.Kartename, Beurteilung.Text, Beurteilungskriterien.KriteriumID
FROM Beurteilung LEFT JOIN Beurteilungskriterien ON Beurteilung.KriteriumID = Beurteilungskriterien.KriteriumID
WHERE (((Beurteilungskriterien.KriteriumID) Is Null));

Hier bekomme ich nichts herraus, spricht es werden überhaupt keine Daten angezeigt

@ZeitGeist87
Wie soll das denn funktionieren? Habe noch nie mit einem View gearbeitet!

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Do 14.06.07 09:13 
Sorry, da hab ich auch zu kurz gedacht, welche Version von MySQL?

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Do 14.06.07 09:20 
Ist KriteriumID in der ersten Tabelle als ForeignKey definiert?

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Do 14.06.07 09:24 
Aber um ehrlich zu sein, versteh ich dein ganzes Tabellenkonzept nicht!!!

Warum hast du in der ersten Tabelle KriteriumID und Text und in der zweiten dann nochmal??
Was bringt das??

Schau dir das mal an:
de.wikipedia.org/wik...isierung_(Datenbank)

Extrem wichtig bei DBMS und entwerfen von Tabellen!

Wichtig sind nur die ersten 3 Normalformen!

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.