ok klein probleempje:
Ik heb een tabel users, met een aantal kolommen waaronder rankpoints.
Daarnaast heb ik een tabel ranks met een aantal kolommen waaronder min_points en name.
Nu wil ik alles van users selecteren en daarbij ook ranksname, maar deze zijn niet via een normale join te koppelen omdat min_points het minimum is dat nodig is.
Ik had het zo opgelost:
<? SELECT *, ranks.name FROM users
LEFT JOIN ranks ON ranks.min_points =< users.rankpoints ?>
Opzich werkt het wel, alleen krijg iik per gebruiker alle rankgen terug die hij ooit heeft gehad.. dus per gebruiker meer dan 1 rang ( voor de meeste dan ).
VB:
<?
users:
username rankpoints
--------------------------
blaat 500
blaat2 100
ranks:
name min_points
---------------------------
r1 10
r2 100
r3 499
r4 899
?>
Als ik deze query dus uitvoer dan krijg ik dit resultaat:
<?
username ranks.name
--------------------------------
blaat r1
blaat r2
blaat r3
blaat2 r1
blaat2 r2
?>
Maar nu wil ik alleen de hoogste rang per user hiervan.. dit dus:
<?
username ranks.name
--------------------------------
blaat r3
blaat2 r2
?>
ik hoop dat het een beetje duidelijk is.
Als iemand mij kan helpen graag.
576 views