yo,
Ich war gerade auch schon dabei ob mein left join falsch sei.
Nur verstehe ich den Unterschied zwischen INNER und OUTER JOIN nicht ganz?
nun, OUTER JOIN(LEFT oder RIGHT) nimmt alle einträge der einen tabelle und schaut, ob es passende einträge in der zweiten tabelle gibt. ist kein entspechender eintrag in der zweiten tabelle vorhanden, nimmt er die ergebnisse der ersten tabelle trotzdem. ein INNER JOIN nimmt nur dann die datensätze in den tabellen, wenn es immer auf beiden seiten einen oder mehrere datensätze entsprechend der join bedingung gibt.
Es sollen bei mir die Preise gruppiert werden und daraus die Summe berechnet werden und die anderen Felder werde normal ausgegeben.
wenn du nach den preisen gruppierst, dann bildet er die gruppe entsprechend gleicher preise, sprich alle datensätze mit gleichen preise, werden in eine gruppe abgelegt. vielleicht solltest du erst nochmal mit worten genau sagen, welches ergebnis du haben willst, damit ich besser nachvollziehen kann, was gesucht wird.
was meinst du mit 2 Abfrage? 2 MySQL Abfragen über PHP ? Das wollte ich eigentlich vermeiden ich möchte es irgendwie in MySQL hinbekommen.
machmal sind zwei mysql abfragen besser als eine komplizierte. erstens ist es in vielen fällen schneller und vor allem, es ist übersichtlicher. nicht alles, was man kann, sollte man auch tun.
So wie Du es gemacht hast funktioniert es auch nicht. Für mich ist es einfach zu verstehen ohne Alias zu arbeiten aber bei sum(PREIS) summe muss ein alias stehen sonst funktioniert es nicht.
es funktioniert auch ohne aliase, aber man kann doch jederzeit einen dazufügen: sum(preise) AS Summe
Und ORDER BY bestell_nr ASC brauche ich nicht weil es eh nur eine Ausgabe gibt, weil es auch nur eine Bestellnummer gibt.
das stimmt, hier ist die ORDER BY klausel überflüssig, da ja nur eine bestimmte bestellnummer ausgewählt wird.
Außerdem macht Dein Code gar kein Sinn ich habe gar kein Bezug zu kunde und position.
der bezug zu dem kunden wird in der angesprochenen zweiten abfrage deutlich, es ist die bestellnummer, über die der kunde ermittelt werden kann. da ich aber zwei abfragen für sinnvoller halte, habe ich die kundentabelle aber erst einmal weg gelassen. nicht desto trotz ist die beziehung aber durch die bestellnummer immer gegeben.
Der Fehler wird im Join Verfahren stecken wo ich noch nicht weiß welcher der richtige ist, bzw ich versteh das nicht.
möglich, aber das würde mich sehr wundern. wie gesagt. am besten noch mal in worten fassen, welches ergebnis du haben willst. bei mir dauert das manchmal, bis es kicl macht und ich weiss, was der andere will.
Ilja