CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
01.11.2006, 11:59:23
|
Anfänger
|
|
Registriert seit: Nov 2006
Beiträge: 4
|
|
LEFT JOIN ON a>b und filtern mit MAX ?
hi, ich kürz mal aufs vermeintlich wesentliche:
SELECT DISTINCT t1.gewicht, t2.groesse
FROM table1 t1
LEFT JOIN table2 t2
ON ( t1.usr = t2.usr
AND t1.date >= t2.date )
WHERE t1.usr = '666'
(kommt im aktuell speziellen fall noch order und limit und weitere felder - keine weiteren tables)
das probem das sich hier ergibt ist, daß mysql5 keinen 'richtigen' left join macht
also wenn für t1.date >= t2.date mehr als ein datensatz in t2 zutrifft, zeigt er diese auch an
mir ist inzwischen klar, daß ich irgendwie noch die ergebnisse des rechten tables mit MAX auf einen einzigen Wert aussortieren müsste. Aber wie geht das ? oder gibt es noch eine andere variante?
denke ist klar, daß ich das auf SQLseite lösen will und nicht mit php filtern
|
01.11.2006, 13:19:29
|
Anfänger
|
|
Registriert seit: Nov 2006
Beiträge: 4
|
|
AW: LEFT JOIN ON a>b und filtern mit MAX ?
hm ok, got one solution: subquery
SELECT DISTINCT t1.gewicht, (
SELECT t2.groesse
FROM table2 t2
WHERE t1.usr = t2.usr
AND t1.date >= t2.date
ORDER BY t2.date DESC
LIMIT 0 , 1
) AS groesse
FROM table1 t1
WHERE t1.usr = '666'
funzt supi - nun aber das problem:
ich baue meine queries mit php zusammen
subqueries werden bis jetzt nicht unterstützt, eigentlich möcht ich das auch möglichst vermeiden, da beim rekursiven aufrufen noch diverse andere schwiereigkeiten hinzukämen :/ außerdemhab ich jetzt den nerv nicht
bin also für jede alternative zu haben!
nïkö
|
02.11.2006, 22:04:31
|
Member
|
|
Registriert seit: Feb 2006
Beiträge: 883
|
|
AW: LEFT JOIN ON a>b und filtern mit MAX ?
Zitat:
Zitat von IChier
das probem das sich hier ergibt ist, daß mysql5 keinen 'richtigen' left join macht
also wenn für t1.date >= t2.date mehr als ein datensatz in t2 zutrifft, zeigt er diese auch an
|
Wenn du die Bedingung so formulierst, wird's auch so ausgegeben. Überleg' mal, was angezeigt werden soll, wenn t1.date >= t2.date...
Da könnte eine weitere Bedingung helfen. Oder du fügst deiner LEFT JOIN Variante das LIMIT hinzu.
Gruß
Heinrich
|
03.11.2006, 17:43:29
|
Anfänger
|
|
Registriert seit: Nov 2006
Beiträge: 4
|
|
AW: LEFT JOIN ON a>b und filtern mit MAX ?
hm .. na der fehler ist mir ja klar
ein globales limit gibts sowieso
welcherlei bedingung würde denn gehen - mir fällt definitiv keine ein, deshlab ja auch ein forumpost :þ
wie kann ich denn explizit das left join limiten ? geht das ?
und wie gesagt, mit dem subquery funktionierts ja, so wies soll.
inzwischen habe ich sogar meine sqlklasse auf subquerys erweitert
aber eine elegantere lösung würde mir besser gefallen, bin immer für schnelles sql zu haben :D kann mir nicht vorstellen daß subqueries sonderlich performant sind ...
gruß, nïkö
|
05.11.2006, 21:23:55
|
Member
|
|
Registriert seit: Feb 2006
Beiträge: 883
|
|
AW: LEFT JOIN ON a>b und filtern mit MAX ?
die zusätzliche Bedingung musst du schon selber wissen. Ich weiß schließlich nicht, was sich - von der Sache her - hinter deinen "date"-Angaben verbirgt.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 17:24:08 Uhr.
|