Mailinglisten-Archive |
> Ich bastele gerade an einen Bestellvorschlag für unsere Lagerverwaltung > darin ermittle ich mit einem SELECT das Datum für alle Artikel die > eine 0-Bestand haben wann sie ausgegangen und vor wieviel Tagen der > Artikel ausgegangen ist. Vom zurückgelieferten Resultset brauche ich > eigentlich nur eine Zeile (nämlich die jüngste). > > Deswegen mache ich ORDER BY Rechnug_Datum DESC LIMIT 1 > Dann liefert er mir aber gar nichts :-( Mache ich LIMIT 50 dann gibts > wenigstens noch vier Zeilen und ohne LIMIT werden 71 Zeilen zurüc- > geliefert. > > warum macht MySQL das so? > hier mein vollständiger SELECT > > SELECT rk.ID, > rk.Rechnung_Datum, > TO_DAYS(CURRENT_DATE()) - TO_DAYS(rk.Rechnung_Datum) AS Fehltage > > FROM RechnungPosition rp, RechnungKopf rk > > WHERE rk.ID = rp.RechnungID > > AND rp.Artikel = '2' > AND rk.Status > 1 > > ORDER BY rk.Rechnung_Datum DESC LIMIT 1 > > Ihr seht also keine große Sache > OK ich kann ohne limit abfragen und nur die erste Zeile verwenden > ist aber kein guter Stil und ich würde schon gerne wissen wieso > das so passiert. versuch mal deine bedingungen im wehre in eine andere reihenfolge zu bringen, deine erste bedingung geht auf die zweite tabelle, und mysql bricht bei der ersten tabelle nach einer gewissen anzahl von datensätzen ab, wegen des limits, ohne aber zu wissen ob dann letzendlich überhaupt datensätze übrig bleiben wenn wenn die zweite where bedingung auf die erste tabelle auch noch zum tragen kommt also, - auswahl aus erster tabelle mit berücksichtigung des wehre für diese tabelle und des limit - verknüpfung mit zweiter tabelle - anwenden des zweiten where auf die erhalten datensätze dabei kann es dann halt passieen das keine datensätze übrig bleiben ...mhm also ich wüsste jetz glaube ich nicht was ich meinte, wenn ich nicht ich wäre ... egal, stell einfach die where bdignungen mal um -- Sebastian Mendel info at sebastianmendel.de www.sebastianmendel.de www.tekkno4u.de www.nofetish.com -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive