Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

komplexerer select

Diskussion: komplexerer select im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige heyho ich hab folgende daten, ne user tabelle mit userid,namen und ne tablle mit einträgen nach der zeit sortiert ...

Antwort
Alt 10.12.08, 00:28   #1 (permalink)
Member of Honour
 
Benutzerbild von easteregg
 
Registriert seit: 14.09.07
easteregg Leistung: Pentium Ieasteregg Leistung: Pentium I
easteregg eine Nachricht über ICQ schicken
Likes: 62
Standard komplexerer select

Anzeige

heyho

ich hab folgende daten, ne user tabelle mit userid,namen und ne tablle mit einträgen nach der zeit sortiert sind, wann man ne abfrage gemacht hat.

wenn ich jetzt die letzte aktivität haben will, brauch ich die maximale zeit (sprich die letzt aktivität) zusammen mit dem benutzer namen.

folgendes konstrukt hab ich, was aber nicht funktioniert, wo liegt der fehler?

Code:
mysql> select id,user,(select max(time) from resets where user_id = u.id) as last from user as u where last < 1228559037 order by last desc;
ERROR 1054 (42S22): Unknown column 'last' in 'where clause'
__________________
» Flattr mich! - Wenn dir mein Beitrag geholfen hat! «
<| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |>
easteregg ist offline   Mit Zitat antworten
Alt 10.12.08, 00:40   #2 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

Auswertungsreihenfolge:
Für Wen Geht Susi Heute Ohne Slip.
=>
From, Where, Select1, Groupby,having, Order By, Select2
d.h es wird der Where-Teil ausgewertet und erst danach der Select-Teil (in dem die Zuweisung stattfindet).
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 10.12.08, 00:45   #3 (permalink)
Member of Honour
Themenstarter
 
Benutzerbild von easteregg
 
Registriert seit: 14.09.07
easteregg Leistung: Pentium Ieasteregg Leistung: Pentium I
easteregg eine Nachricht über ICQ schicken
Likes: 62
Standard

eine geniale eselsbrücke!
wie müsste das dann aber aussehen, damit der select greift?
da müsst ich ja irgendwie das last schon vorher bekommen und es damit in zwei seperaten querys abarbeiten seh ich das richtig?

edit: oder kann man da noch sowas einbauen wie max(resets.time), allerdings bekomm ich ja dein keine where klausel mit unter
__________________
» Flattr mich! - Wenn dir mein Beitrag geholfen hat! «
<| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |>
easteregg ist offline   Mit Zitat antworten
Alt 10.12.08, 00:49   #4 (permalink)
LX
Moderator
 
Registriert seit: 14.02.06
LX Leistung: Z3
LX eine Nachricht über ICQ schicken LX eine Nachricht über AIM schicken LX eine Nachricht über Yahoo! schicken
Likes: 21
Arrow

Wie wär's stattdessen mit folgendem Konstrukt:

Code:
SELECT u.id, u.user, r.time
FROM user u
LEFT JOIN resets r ON u.id=r.user_id
WHERE r.time < 1228559037
ORDER BY r.time DESC
LIMIT 1
__________________
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

JS BB LX UP
LX ist offline   Mit Zitat antworten
Alt 10.12.08, 00:54   #5 (permalink)
Member of Honour
Themenstarter
 
Benutzerbild von easteregg
 
Registriert seit: 14.09.07
easteregg Leistung: Pentium Ieasteregg Leistung: Pentium I
easteregg eine Nachricht über ICQ schicken
Likes: 62
Standard

an einen inner join hatte ich auch gedacht, nur dann hab ich grundsätzlich ziemlich viele datensätze zurückbekommen, wenn ich mehrere time einträge größer meiner abfragezeit hatte.
ich möcht ja sozusagen von allen benutzern jeweils die letzte aktivität haben!
(ich hoffe ich hab deinen query richtig interpretiert, kann den grad nicht ausprobieren)
__________________
» Flattr mich! - Wenn dir mein Beitrag geholfen hat! «
<| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |>
easteregg ist offline   Mit Zitat antworten
Alt 10.12.08, 01:19   #6 (permalink)
LX
Moderator
 
Registriert seit: 14.02.06
LX Leistung: Z3
LX eine Nachricht über ICQ schicken LX eine Nachricht über AIM schicken LX eine Nachricht über Yahoo! schicken
Likes: 21
Arrow

Ich hab dich so verstanden, dass du eigentlich nur die letzte Aktivität (vor einem bestimmten Zeistempel) haben willst, nicht die von allen Nutzern. Ist aber auch kein Problem und sollte in etwa so gehen:

Code:
SELECT u.id, u.user, max(r.time) AS last
FROM user u
LEFT JOIN resets r ON u.id=r.user_id
WHERE last < 1228559037
GROUP BY u.id
__________________
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

JS BB LX UP
LX ist offline   Mit Zitat antworten
Alt 10.12.08, 08:16   #7 (permalink)
Member of Honour
Themenstarter
 
Benutzerbild von easteregg
 
Registriert seit: 14.09.07
easteregg Leistung: Pentium Ieasteregg Leistung: Pentium I
easteregg eine Nachricht über ICQ schicken
Likes: 62
Standard

das produziert allerdings wieder den bekannten fehler:

Code:
 ERROR 1054 (42S22): Unknown column 'last' in 'where clause'

ich glaub ich habs:
doch nich!
doch!

und zwar brauch ich doch gar nicht die abfrage mit dem maximum, weil das wird ja erst nach der where klausel bestimmt, susi lässt grüßen.
ich kann ja, da ich ja ohnehin den größten wert haben will, einfach nach resets.time filtern, indem ich da einfach nen where resets.time < time() - 86400 reinpack!

Code:
SELECT
    user.id,user.user,max(resets.time) 
FROM
    resets
INNER JOIN 
    user 
  ON
    resets.user_id = user.id 
WHERE
    resets.time > 1228899994 - 86400
GROUP BY 
    user.id;
et voila, ich bekomm die letzten aktivitäten innerhalb des letzten tages
jackpot!
__________________
» Flattr mich! - Wenn dir mein Beitrag geholfen hat! «
<| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |>
easteregg ist offline   Mit Zitat antworten
Alt 10.12.08, 10:42   #8 (permalink)
 
Registriert seit: 17.07.08
v3rtico Leistung: Facit NTK
v3rtico eine Nachricht über ICQ schicken v3rtico eine Nachricht über AIM schicken
Likes: 0
Standard

Zitat:
Original von CDW
Auswertungsreihenfolge:
Für Wen Geht Susi Heute Ohne Slip.
=>
From, Where, Select1, Groupby,having, Order By, Select2
d.h es wird der Where-Teil ausgewertet und erst danach der Select-Teil (in dem die Zuweisung stattfindet).
Kenn ich als

Für wen stript Gabi heute ohne slip
v3rtico ist offline   Mit Zitat antworten
Alt 10.12.08, 10:46   #9 (permalink)
Member of Honour
Themenstarter
 
Benutzerbild von easteregg
 
Registriert seit: 14.09.07
easteregg Leistung: Pentium Ieasteregg Leistung: Pentium I
easteregg eine Nachricht über ICQ schicken
Likes: 62
Standard

OT: wieso gibts für sowas eigentlich keine jugendfreie eselsbrücken ;D
__________________
» Flattr mich! - Wenn dir mein Beitrag geholfen hat! «
<| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |>
easteregg ist offline   Mit Zitat antworten
Alt 10.12.08, 10:59   #10 (permalink)
 
Registriert seit: 17.07.08
v3rtico Leistung: Facit NTK
v3rtico eine Nachricht über ICQ schicken v3rtico eine Nachricht über AIM schicken
Likes: 0
Standard

Fresse wen schlägt Gürkan heute ohne Schlagring?

Das ist... jugendlicher
v3rtico ist offline   Mit Zitat antworten
Alt 10.12.08, 12:21   #11 (permalink)
 
Registriert seit: 11.06.05
snoggo Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Original von v3rtico
Zitat:
Original von CDW
Auswertungsreihenfolge:
Für Wen Geht Susi Heute Ohne Slip.
=>
From, Where, Select1, Groupby,having, Order By, Select2
d.h es wird der Where-Teil ausgewertet und erst danach der Select-Teil (in dem die Zuweisung stattfindet).
Kenn ich als

Für wen stript Gabi heute ohne slip
Fuer Wen Geht Susi Heute Ohne Slip? => FWGSHOS
From, Where, Select1, Groupby, Having, Orderby, Select2 => FWSGHOS
S und G vertauscht

Fuer wen stript Gabi heute ohne Slip? stimmt

(zumindest wenn die Reihenfolge richtig ist. Hab schon laenger kein SQL mehr gehabt [RoR rockt ])
snoggo ist offline   Mit Zitat antworten
Alt 10.12.08, 13:28   #12 (permalink)
 
Registriert seit: 17.07.08
v3rtico Leistung: Facit NTK
v3rtico eine Nachricht über ICQ schicken v3rtico eine Nachricht über AIM schicken
Likes: 0
Standard

Zitat:
Original von snoggo
Zitat:
Original von v3rtico
Zitat:
Original von CDW
Auswertungsreihenfolge:
Für Wen Geht Susi Heute Ohne Slip.
=>
From, Where, Select1, Groupby,having, Order By, Select2
d.h es wird der Where-Teil ausgewertet und erst danach der Select-Teil (in dem die Zuweisung stattfindet).
Kenn ich als

Für wen stript Gabi heute ohne slip
Fuer Wen Geht Susi Heute Ohne Slip? => FWGSHOS
From, Where, Select1, Groupby, Having, Orderby, Select2 => FWSGHOS
S und G vertauscht

Fuer wen stript Gabi heute ohne Slip? stimmt

(zumindest wenn die Reihenfolge richtig ist. Hab schon laenger kein SQL mehr gehabt [RoR rockt ])
Nein eben umgekehrt.

Guckstu da is vertauscht:
FWGSHOS = Für wen geht Susi heute ohne Slip
FWSGHOS = From, Where, Select1, Groupby, Having, Orderby, Select2

Guckstu da is richtig:
FWSGHOS = Für wen stript Gabi heute ohne Slip
FWSGHOS = From, Where, Select1, Groupby, Having, Orderby, Select2

v3rtico ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » komplexerer select
Themen-Optionen
Ansicht

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.

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Select und Funktion - Frage VivaLosTioz (Web-) Design und webbasierte Sprachen 4 25.03.09 09:46
input per Catarrer (Web-) Design und webbasierte Sprachen 5 11.08.08 00:02
[MySQL] SELECT SUM() in UPDATE Friedrich Code Kitchen 1 18.12.07 16:03
Funktionsweise SELECT Dawen Code Kitchen 2 31.05.07 15:28
JS: mido (Web-) Design und webbasierte Sprachen 4 02.08.02 17:02


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61