snapdragon Geschrieben 12. September 2015 Geschrieben 12. September 2015 Hi, ich übe gerade SQL Abfragen und hänge bei einer Übungsaufgabe. Zwei der Anfragen bekomme ich partout nicht hin und würde mich freuen, wenn ihr mir sagen könntet, wie die aussehen müssen. Die Beispieldatenbank sieht so aus: Kunde(KID,Email,Name) Buchung(KID,BID,FahrradgestellNr) Fahrrad(FahrradgestellNr,ModellID,Größe,Farbe,Zustand) Modell(ModellID,Bezeichnung,Gänge) Abfrage 7: Welcher Kunde (KID) hat dasselbe Fahrrad mehrmals ausgeliehen? Abfrage 8: Welcher Kunde (KID) hat alle grünen Fahrräder ausgeliehen? VG snap Zitieren
127.0.0.1 Geschrieben 12. September 2015 Geschrieben 12. September 2015 wie sieht denn dein db-modell aus? und deine beziehungstypen? welche abrage hast du bis jetzt ausprobiert? wann musst du deine hausaufgaben abgeben? Zitieren
snapdragon Geschrieben 12. September 2015 Autor Geschrieben 12. September 2015 Hi, das ist keine Hausaufgabe, sondern eine Altklausuraufgabe, die ich nicht gelöst bekomme. Nur die Relationen sind gegeben und die Abfragen, die gestellt werden sollen. Abfrage 7 & 8 bekomme ich einfach nicht hin. Alle anderen waren nach dem Schema SELECT * FROM XY WHERE ... Zitieren
lilith2k3 Geschrieben 12. September 2015 Geschrieben 12. September 2015 Welcher Kunde (KID) hat dasselbe Fahrrad mehrmals ausgeliehen? Welche Informationen hast Du an der Stelle? Wie sieht die Beziehung zwischen Kunde und Fahrrad aus. Welcher Kunde (KID) hat alle grünen Fahrräder ausgeliehen? Wie ist die Beziehung von Kunde zu Fahrradfarbe? Zitieren
snapdragon Geschrieben 12. September 2015 Autor Geschrieben 12. September 2015 Es sind keine weiteren Informationen gegeben. Nur die oben genannten Tabellen. Kein Zusatztext. Zitieren
lilith2k3 Geschrieben 12. September 2015 Geschrieben 12. September 2015 Vielleicht steckt die Lösung in den Angaben? Zitieren
snapdragon Geschrieben 13. September 2015 Autor Geschrieben 13. September 2015 (bearbeitet) Sorry aber ich komme nich darauf, wie die zwei SELECTs aussehen müssen :/ Hätte bei Abfrage 7 sowas probiert wie: SELECT KID FROM Kunde k1, Kunde k2, Buchung b, Fahrrad f, Modell l WHERE k1.KID = k2.KID AND k1.KID = b.KID AND b.FahrradgestellNr = f.FahrradgestellNr oder sowas -.- Bearbeitet 13. September 2015 von snapdragon Zitieren
HJST1979 Geschrieben 13. September 2015 Geschrieben 13. September 2015 Kleiner Tipp zu Aufgabe 7 benutze Count(FahrradgestellNr) Für beide Aufgaben benötigt man einen Left-Join Den Rest Google mal Gesendet von meinem HUAWEI G525-U00 mit Tapatalk Zitieren
arlegermi Geschrieben 15. September 2015 Geschrieben 15. September 2015 SELECT KID FROM Kunde k1, Kunde k2, Buchung b, Fahrrad f, Modell l WHERE k1.KID = k2.KID AND k1.KID = b.KID AND b.FahrradgestellNr = f.FahrradgestellNr Ein paar Anmerkungen hierzu: 1. Es mag durchaus sein, dass dir dein DBMS sowas wie FROM Kunde k1, Kunde k2, Buchung b, Fahrrad f, Modell l optimiert, trotzdem solltest du dich unbedingt mit Joins auseinandersetzen. 2. Wieso ziehst du dir alle Tabellen, wenn du nur drei abfragst? Ja, Optimierung ist nicht das Ziel der Aufgabe, aber wenn du einfach stur alle Tabellen aufzählst, wirkt das so, als hättest du keinen Überblick über die Problemstellung. 3. Ich frage mich, was du mit k1.KID = k2.KID erreichen möchtest. Gehe das ganze mal von vorne an: Kunde(KID,Email,Name) Buchung(KID,BID,FahrradgestellNr) Fahrrad(FahrradgestellNr,ModellID,Größe,Farbe,Zustand) Modell(ModellID,Bezeichnung,Gänge) Abfrage 7: Welcher Kunde (KID) hat dasselbe Fahrrad mehrmals ausgeliehen? Welche Tabellen brauchst du, um die Frage zu beantworten? Wie musst du diese Tabellen miteinander verknüpfen? Was bedeutet es für die Daten, wenn ein Kunde "dasselbe Fahrrad mehrmals ausgeliehen" hat? Wie kannst du das in den Tabellen nachvollziehen? Vielleicht hilft es dir, wenn du versuchst, die Frage für dich umzuformulieren? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.