bij distinct meer waardes ?
Ben nu bezig met een forum en wil de actieve topics toenen.
Ik wil graag dat ik meer gegevens uit de tabel forum_replies krijg dan allen het id_sub, hoe krijg ik dit voor melkaar ?
bram
Code (php)
1
2
3
2
3
<?php
$sql="SELECT DISTINCT(id_sub,meer,nogmeer,nogveelmeer,) FROM forum_replies)";
?>
$sql="SELECT DISTINCT(id_sub,meer,nogmeer,nogveelmeer,) FROM forum_replies)";
?>
misschien zo??? En waarom distinct?? Waarom niet zonder dat distinct() er omheen??
Greedyxl:
Distinct zorgt ervoor dat er geen dubbele waarden komen, en die haakjes moeten volgens mij wel ^^
het lukt nog niet allemaal zo goed :'(
Ik wil van maar een kolom de distinct waardes (euh kolom is toch wel de verticale rij?) en de rest maakt allemaal niet uit wat voor waardes het zijn. Mischien is ditsinct niet het juiste wat ik dan zoek.
Dit werkte helaas ook niet.
bram
SELECT DISTINCT(id_sub), veldje, veldje, veldje FROM forum_replies
Het doet het nog steed niet, ook niet met het bovenstaande.Nu heb ik zelf iets verzonnen met een subquery, iets wat ik altijd probeer te vermijden :p Oke dit is het dus:
Code (php)
1
2
3
2
3
<?php
$sql="SELECT * FROM forum_replies WHERE id_sub=(SELECT DISTINCT(id_sub)FROM forum_replies)";
?>
$sql="SELECT * FROM forum_replies WHERE id_sub=(SELECT DISTINCT(id_sub)FROM forum_replies)";
?>
wat is er nu fout aan deze parchtige subquery?
bram
Geef ons 'ns een schema van wat er moet gebeuren, dan helpen we je wel ff, ben je vanaaf nog klaar ^^
id|id_sub|naam| datum | reply|
1 |1 |abcd|20041102192616|blabla
2 |1 |bram|20041102195004|bla
3 |2 |bram|20041103144922|bla2
Tabel met onderwerpen:
id|onderwerp|
1 |ok
2 |jaja
Gewenste uivoer:
id_sub|onderwerp|laatste reactie datum|
1 |ok |20041102195004
2 |jaja |20041103144922
De id_sub verwijst naar de id van de tabel met onderwerpen. Nu wou graag dat je de laatste onderwerpen kunt zien waar er het laatst op is gereageerd. Hierbij moet dus de id_sub uniek zijn.
bram
Geeft je de laatste 5 berichten waarop gereageerd is :)
de distinct waardes opvragen en er dan verder de 'rest' aan koppelen.
Hoe weet je database nu welke hij moet nemen?
Bv :
naam - leeftijd
-----------------
Mary - 22
Hans - 13
An - 14
Tim - 22
Select distinct(leeftijd),naam from table;
Hoe weet de tabel nu welke naam hij moet nemen voor leeftijd 22? Dit zal dus ook nooit een mooie uitkomst geven...
maw :
Select distinct(leeftijd) from tabel levert :
22
13
14
Select distinct(leeftijd),naam from tabel levert :
22, Mary
13, Hans
14, An
22, Tim
Je distinct valt dus een beetje in het water...
Gewijzigd op 05/11/2004 13:30:00 door mary
SELECT forum_subjects.onderwerp, forum_replies.datum
FROM forum_subjects
INNER JOIN forum_replies
ON(forum_subjects.id=forum_replies.id_sub)
Hier staan allen nog maar de onderwerpen dubbel in.
En dit zou dan <U>theoretich</U> moeten werken:
SELECT forum_subjects.onderwerp, forum_replies.datum
FROM forum_subjects
INNER JOIN forum_replies
ON(DISTINCT(forum_replies.id_sub)= forum_subjects.id)
dit werkt echter niet , dit is de error:
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DISTINCT(forum_replies.id_sub)= forum_subjects.id)
gebruik het GROUP BY commando ipv Distinct !
select id,subgroep from Tabelnaam group by subgroep
Dit werkt volgens mij wel.