Hilfe bei SQL-Aufgabe?

4 Antworten

Das dürfte an

    AND p.name = "Besen"
    AND NOT p.name = "Kinder Bueno"

liegen.

Wenn z. B. die Benutzer herausgesucht werden sollen, die sowohl "Handfeger" als auch "Kehrblech" bestellt haben, schlägt

    AND p.name = "Handfeger"
    AND p.name = "Kehrblech"

fehl.

D. h. es wird (vermutlich) erwartet, dass ihr je Benutzer die Liste der Bestellungen mehrfach durchgeht.

-----

Ob es didaktisch klug ist, diese "und nicht"-Bedingung vor einer "sowohl - als auch"-Bedingung zu fordern, sei dahingestellt. Die "verborgenen Tests" sind es - jedenfalls für Anfänger - keinesfalls.


CrangoGER 
Beitragsersteller
 25.06.2022, 02:21

Never mind habs geschafft.

0
CrangoGER 
Beitragsersteller
 25.06.2022, 02:01

Hast du eine Idee, wie man so etwas machen kann?

0

Ich sehe die absteigende Sortierung nach Anzahl aus der Aufgabe nicht.

ORDER BY po.anzahl DESC, u.benutzername ASC;

Ah, Moment mal, das war nur exemplarisch, ich habe nichts gesagt.

Wird eventuell die Nutzung von Joins erwartet, anstatt einfach das Kreuzprodukt zu bilden?

In der Aufgabe steht das jeder Benutzername nur einmal im Ergebnis vorkommen darf. Da fehlt also richtigerweise noch ein GROUP BY, auch wenn das in deinem Fall keinen Unterschied machen wird, weil keiner der Benutzer mehrere gleiche Bestellungen aufgegeben hat.

Das könnte ich mir so vorstellen, oder es ist einfach verbuggt 🤣

LG Knom

Woher ich das weiß:Studium / Ausbildung – Softwareentwickler mit 10 Jahren Berufserfahrung 💾

CrangoGER 
Beitragsersteller
 23.06.2022, 21:21

Ja, aber hab ja DISTINCT benutzt

1

nicht alle mit allen verknüpfen , das ist böses werkzeug in den meisten fällen .

erstmal schreibst du das in

SELECT 
 FROM  tabelle1
 JOIN  tabelle2
   ON tabelle1.FK = tabelle2.PK
 JOIN  ...
   ON ...
 JOIN ...
   ON ...
 WHERE ...
 GROUP BY ...
 HAVING ...
 ORDER BY ...
 LIMIT ...

um.

oder mir dem merksatz die reihenfolge

Susi
Figgt
Willy
Ganz
Hart
Ohne
Liebe

CrangoGER 
Beitragsersteller
 23.06.2022, 21:16

Aber ich muss doch alle mit allen verknüpfen, weil wie komme ich sonst von der Tabelle Benutzer zur Tabelle Produkt?

Also wie kann ich die zwei Tabellen sonst verknüpfen?

0
TechPech1984  23.06.2022, 21:17
@CrangoGER

du verknüpfst ja auch mit JOIN ON FK=PK die tabellen dann joint du die nächste tabelle und nimmst wieder den passenden FK zum PK der tabelle

nur SELECT FROM alle tabellen ist wirklich sowas von anfänger und schlecht lesbar wenn dann ein ellenlange AND im where kommt , nerft auch wenn dann Oder etc kommen .

0
CrangoGER 
Beitragsersteller
 23.06.2022, 21:18
@TechPech1984

ok, ich probiers mal, update dich gleich. Ok kanns nicht ausprobieren, die Aufgabe wurde gerade runter genommen, anscheinend müssen die etwas bearbeiten.

0
TechPech1984  23.06.2022, 21:28
@CrangoGER

ich würde wenn auch AS setzen oder besser einfach die tabellen ausschreiben . wer weiss wie schlau das tool ist .

dann ist jetzt echt die frage was das mit anzahl zu sagen hat, sollst du da eine summe bilden nach der du sortierst oder ist das die feste anzahl an bestellungen schon drinne .

ich finde solche uneindeutigen aufgaben immer sinnbefreit wenn man keine beispiel daten hat und dann dort sows steht wie , man sieht das doch aus der lösung , lol , ja ne sieht man nicht .

praktisch

brauchst du ja nur bis zur tabelle mit anzahl alle joinen , den danach ist eh uninterressant .

0
CrangoGER 
Beitragsersteller
 23.06.2022, 21:40
@TechPech1984

Anzahl ist, die Anzahl der bestellten Produkte. Ja das mit ohne Beispiel Daten ist echt blöd.

0
TechPech1984  23.06.2022, 21:41
@CrangoGER

ja das ist klar , aber dann heist das das das schon eine ausgewerte tabelle ist wo halt fest die anzahl drinne steht .

ja dann brauchst du die produkte tabelle ja gar nicht mehr .

wäre nur die frage, ob da jetzt die summe von allen produkten rein soll die ein benutzer bestellt hat . sann würde ich nämlich SUM(Bestellungen.Anzahl) AS Anzahl und dann Order BY Anzahl

0
CrangoGER 
Beitragsersteller
 23.06.2022, 21:43
@TechPech1984

Ja, die wollen uns halt einfach ein Beispiel geben, aber die scheinen gerade so oder so technische Probleme mit der ganzen Übung zu haben, weil sie sie offline genommen haben und meinen dass sie die Testumgebung überarbeiten müssen. Danke trotzdem für die Hilfe :)

0
TechPech1984  23.06.2022, 21:44
@CrangoGER

habs nochmal ergäntzt . wie gesagt, ich hasse dozenten und lehrer dioe prüfungsarbeiten schreiben aber nie mit einer Datenbank gearbeitet haben . ich fetzt mich immer mit meinen kollegen , weil sie durch ihren dunning kruger effekt sich auch noch für schlau halten .

0
CrangoGER 
Beitragsersteller
 23.06.2022, 21:46
@TechPech1984

Ich glaube nicht dass die Aufgabe vom Dozenten selber kommt ^^. Das machen bestimmt die Wissenschaftlichen Mitarbeiter die für Ihn arbeiten.

0