MySQL: JOIN?

LasMiranda

kanz pöhse
ID: 28058
L
5 Mai 2006
3.160
340
ich habe 2 Abfragen und möchte eigentlich verhindern, dass ich da jedes Ergebnis einzeln durchgehen muss und so massig Einzelabfragen entstehen.

1. Query: SELECT `userid` FROM `user` WHERE `werber`='test';
(fragt alle Refs des Users ab, es können mehrfache Ergebnisse auftreten)
2. Query: SELECT `spalte` FROM `user_stats` WHERE `userid`='refs';
(dort möchte ich die `spalte` bei den Refs des Users abfragen, einmaliger Eintrag)

Eigentlich möchte ich die Summe des Wertes `spalte` von allen Users, die Ref des Users sind.

Da ich nicht mal weiß, wie man da richtig an die Sache rangehen soll, habe ich in der Threadübersicht mal auf ein Subquery oder JOIN getippt, was genutzt werden muss. Ich weiß allerdings nicht, wie.

verwendete MySQL-Version: 3.23.55

EDIT: Subquery hat sich grad erledigt, das geht ja nur ab MySQL 4
 
Zuletzt bearbeitet:
Code:
SELECT SUM(us.`spalte`) FROM `user_stats` as us 
INNER JOIN `user` as u ON (u.`user_id` = us.`user_id`)
WHERE u.`werber` = '<werber_id>'

Wenn ich jetzt keine groben Denk-/Verständnisprobleme habe, sollte das genau tun was du willst. Es liest alle Statistiken der Benutzer ein, die im Feld werber die werber_id zu stehen haben und bildet die Summe von spalte. Du kriegst also eine Zahl als Ergebnis zurück.
 
Probier mal sowas in der Art:

SELECT sum(US.spalte) FROM user INNER JOIN user_stats AS US ON US.userid = user.userid WHERE user.werber='test'

Bin allerdings nicht sicher, ob das so funktioniert oder ob das mehrere Ergebnisse liefert ....

Edit: War wohl einer schneller wie ich ;)