Veröffentlicht 12. September 20159 j 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
12. September 20159 j wie sieht denn dein db-modell aus? und deine beziehungstypen? welche abrage hast du bis jetzt ausprobiert? wann musst du deine hausaufgaben abgeben?
12. September 20159 j Autor 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 ...
12. September 20159 j 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?
12. September 20159 j Autor Es sind keine weiteren Informationen gegeben. Nur die oben genannten Tabellen. Kein Zusatztext.
13. September 20159 j Autor 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 20159 j von snapdragon
13. September 20159 j 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
15. September 20159 j 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?
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.