php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Thema geschlossen
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.11.2011, 12:37  
Igotcha
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von ChrisB Beitrag anzeigen
Ich meinte die zweite JOIN-Variante, die dort aufgeführt ist …
Sorry, ich verstehe es nicht, weshalb ich hier ja auch gefragt habe.

Das ist nun der zweite JOIN von dem Link.

Code:
SELECT s1.orders_id
FROM orders_status_history s1
LEFT JOIN orders_status_history s2 ON s1.orders_id= s2.orders_id AND s1.date_added < s2.date_added
WHERE s2.orders_status_id = 5
Aber die Ergebnisse sind nicht, was ich haben möchte.

Ich habe es auch statt

s1.date_added < s2.date_added mit
s1.orders_status_id < s2.orders_status_id

probiert, aber die Ergebnisse sind einfach "falsch".

Aus meiner bescheidenen Sicht kann das auch so nicht funktionieren, da die Betrachtung pro Order erfolgen muss. Es muss also jeweils aus den für eine Order existierenden n (hier i.d.R. 4) Datensätzen folgendes geprüft werden:

1. habe ich den letzten Eintrag zu einer Order (= höchster Timestamp aus den 4 Order-Datensätzen)?
2. ist bei diesem Eintrag der Wert des Feldes "orders_status_id" = 5?
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.11.2011, 12:47  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Da steht explizit drunter, auf welcher Basis dieser JOIN das Ergebnis erzielt.
Wenn du davon einfach einen wesentlichen Teil weglässt, musst du dich auch nicht wundern, wenn du damit nicht das gewünschte erreichst.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline  
Alt 10.11.2011, 13:08  
Igotcha
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von ChrisB Beitrag anzeigen
Da steht explizit drunter, auf welcher Basis dieser JOIN das Ergebnis erzielt.
Wenn du davon einfach einen wesentlichen Teil weglässt, musst du dich auch nicht wundern, wenn du damit nicht das gewünschte erreichst.
Ich kann ja nur nach orders_status_id oder date_added abfragen, das sind ja die relevanten Größen:

Code:
SELECT s1.orders_id, s1.date_added, s1.orders_status_id
FROM orders_status_history s1
LEFT JOIN orders_status_history s2 ON s1.orders_id= s2.orders_id AND s1.orders_status_id < s2.orders_status_id
WHERE s2.orders_status_id = 5
oder

Code:
SELECT s1.orders_id, s1.date_added, s1.orders_status_id
FROM orders_status_history s1
LEFT JOIN orders_status_history s2 ON s1.orders_id= s2.orders_id AND s1.date_added < s2.date_added
WHERE s2.orders_status_id = 5
Beide Abfragen bringen "falsche" Ergebnisse.

Wahrscheinlich ist es vermessen zu fragen, aber wenn Du die Lösung kennst, warum schreibst Du sie dann bitte nicht hier?

Ich bemühe mich ja nun tatsächlich, die Lösung zu erarbeiten, aber komme nun einmal nicht weiter.
 
Alt 10.11.2011, 13:11  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von ChrisB Beitrag anzeigen
Da steht explizit drunter, auf welcher Basis dieser JOIN das Ergebnis erzielt.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline  
Alt 10.11.2011, 14:18  
Igotcha
Gast
 
Beiträge: n/a
Standard

Sehr abwechslungsreich Deine Antworten...

Da hier kein anderer außer Dir schreibt, vermute ich einfach mal, dass die Fragestellung offenbar nicht so trivial ist, wie Du das permanent rauszustellen versuchst und langsam vermute ich auch, dass Du die Aufgabenstellung nicht verstanden hast.

Das Beispiel aus dem Link hat nämlich im Entfernstesten etwas mit meinem Problem zu tun, was man schon anhand der Beispieltabelle aus dem Link sieht:

Code:
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|    0001 | B      |  3.99 |
|    0002 | A      | 10.99 |
|    0003 | C      |  1.69 |
|    0004 | D      | 19.95 |
+---------+--------+-------+
Hier gibt es für einen Artikel (bei mir order_id) nur jeweils einen Eintrag (price) und das ist die Vergleichsgröße.

Zitat:
Task: For each article, find the dealer or dealers with the most expensive price.
Weder muss ich bei mir das Maximum einer orders_status_id, noch das Maximum eines date_added herausfinden.
 
Alt 10.11.2011, 14:29  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Igotcha Beitrag anzeigen
Sehr abwechslungsreich Deine Antworten...
Besser als deine Art zu antworten - bei der du die Hälfte der Hinweise einfach ignorierst.

Zitat:
Da hier kein anderer außer Dir schreibt, vermute ich einfach mal, dass die Fragestellung offenbar nicht so trivial ist, wie Du das permanent rauszustellen versuchst und langsam vermute ich auch, dass Du die Aufgabenstellung nicht verstanden hast.
Wenn du Hilfe willst, dann komm mir bitte nicht so blöd – dafür, dass du dich so begriffsstutzig anstellst, kann ich nichts.

Ich habe die Aufgabestellung sehr wohl verstanden. Du weigerst dich nur bisher, das Prinzip der Lösung zu begreifen.

Zitat:
Zitat von Igotcha Beitrag anzeigen
Das Beispiel aus dem Link hat nämlich im Entfernstesten etwas mit meinem Problem zu tun
Doch. Du merkst es nur noch nicht.

Zitat:
"Suche mir die Order-IDs raus, bei denen der letzte Eintrag (=höchster Timestamp) einer Order(-ID) einen Wert "status = 5" hat."
Der erste Teil davon ist das Finden eines groupwise maximum.
Das machst du also erst mal.

Dir von denen nur die liefern lassen, bei denen der status = 5 ist, ist schlicht und einfach eine zusätzliche einschränkende Bedingung.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline  
Alt 10.11.2011, 14:59  
Igotcha
Gast
 
Beiträge: n/a
Standard

Ich kündige meinen Account hier, denn so eine Art und Weise der "Moderation" muss ich mir nicht antun.

Du gehörst wohl zu der Art von Moderatoren, die Beiträge in solchen Foren nur wertschätzen, wenn Sie von "Experten" für "Experten" sind.
 
Alt 10.11.2011, 15:07  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ach ätz, wieder einer, der die Doppelrolle eines Moderators als User hier nicht rafft.

[MOD: Thread geschlossen]
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Thema geschlossen


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Abfrage von einer Abfrage Datenbanken 5 27.01.2011 23:31
False Abfrage und SQL hängt sich auf marc77 Datenbanken 4 22.11.2010 14:57
[Erledigt] Abfrage aus mehreren Tabellen HiddenX Datenbanken 6 24.08.2010 14:45
[Erledigt] Brauche Hilfe bei einer If Abfrage TrueEdge PHP Tipps 2010 7 22.04.2010 15:50
Sache der Abfrage? Bitte um Hilfe ! idontknow Datenbanken 4 20.04.2010 15:35
[Erledigt] hilfe bei db Abfrage mit Kathegorien hups Datenbanken 4 09.12.2009 22:45
MySQL - Fehler in einfacher Abfrage oden Datenbanken 11 03.01.2009 20:03
Hilfe bei SQL Abfrage Cyberbob_at_tot Datenbanken 1 29.11.2005 18:56
[Erledigt] mysql abfrage - Hilfe Datenbanken 2 25.10.2005 20:44
Abfrage von mehreren Werten mit Hilfe von LIKE? PHP Tipps 2005-2 4 12.09.2005 19:19
[Erledigt] mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
hilfe bei abfrage PHP Tipps 2005-2 15 15.08.2005 20:47
brauche hilfe beim DB abfrage Cyrus PHP Tipps 2005-2 5 14.08.2005 20:07
Hilfe bzgl. Datenbank abfrage PHP Tipps 2004 5 24.06.2004 18:21


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:24 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum