sql max query
Kan iemand mij helpen? Ik heb een tabel en die ziet er als volgt uit:
projectgereedschap_id, project_id, gereedschap_id en punten
Nu wil ik uit een query krijgen alle gereedschappen met de meeste punten
en de daarbij horende project_id. Alleen krijg ik dat niet voor elkaar. Op dit moment heb ik:
SELECT project_id, max( punten) as max_punten FROM `projectschakeltabel` GROUP BY gereedschap_id
Alleen hiermee krijg ik BIJNA wat ik nodig heb. alleen de output van project_id hoort haalt die alleen uit de bovenste rijen van de database tabel. Wie kan zo zien wat ik fout doe?
Gewijzigd op 01/01/1970 01:00:00 door Ray B
Veel plezier d'r mee.
Helpen? Waarmee?
Raymond schreef op 14.09.2009 15:48:
ik had gehoopt dat mijn bericht html ondersteunde even kijken hoe ik dit moet uitleggen.
Het enige wat je met dat bericht zei, was dat je een tabel had. Meer niet.
Dit is hetzelfde:
Ik heb een pen, en die ziet er zo uit:
![Afbeelding Afbeelding](http://www.newellcocgpp.com/b2b/ImageLibrary/Products/Parker/Jotter/Stainless%20Steel/P_JOTTER_SS_BP_HI.jpg)
Ik weet het, ik had perongeluk iets te vroeg op post gedrukt.
Quote:
SELECT project_id, max( punten) as max_punten FROM `projectschakeltabel` GROUP BY gereedschap_id
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$sql = mysql_query("SELECT * FROM `projectschakeltabel` GROUP BY gereedschap_id ORDER BY punten DESC") or die (mysql_error());
while($row = mysql_fetch_assoc($sql))
{
echo "[".$row['gereedschap_id'].",".$row['product_id']."]";
}
?>
$sql = mysql_query("SELECT * FROM `projectschakeltabel` GROUP BY gereedschap_id ORDER BY punten DESC") or die (mysql_error());
while($row = mysql_fetch_assoc($sql))
{
echo "[".$row['gereedschap_id'].",".$row['product_id']."]";
}
?>
Weet je misschien ook hoe ik hier nu per gereedschap_id, alleen de rijen kan selecten met de hoogste/MAX punten, zodat de goede project_id hier wel bij komt te staan?.
en dan per gereedschap_id nog een query die er als volgt uitziet
Code (php)
1
2
3
4
5
2
3
4
5
$sql = "SELECT project_id, gereedschap_id, punten
FROM bq_schakel_projectgereedschap
WHERE gereedschap_id LIKE '".$gereedschap_id"'
ORDER BY punten DESC
LIMIT 1 ";
FROM bq_schakel_projectgereedschap
WHERE gereedschap_id LIKE '".$gereedschap_id"'
ORDER BY punten DESC
LIMIT 1 ";
Nu krijg ik per gereedschap de hoogste punten en het daarbijhorende project_id, dit is vast niet de beste manier om dit op te lossen, zo met 2 aparte queries. Maar het werkt nu wel zo. Als iemand nog een strakkere oplossing weet. hoor ik die graag
Gewijzigd op 01/01/1970 01:00:00 door Ray B