sql max query
Hallo,
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?
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
Mooi zo.
Veel plezier d'r mee.
Veel plezier d'r mee.
Helpen? Waarmee?
'Raymond:
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:

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']."]";
}
?>
Jou query werkt net niet helemaal yearupie.
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?.
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?.
ik heb het op het moment nu zo opgelost eerst een query die alle gereedschap id's ophaalt.
en dan per gereedschap_id nog een query die er als volgt uitziet
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
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




