Toon posts:

[SQL] welke query?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb 2 tabellen gemaakt... even uitgetekend ziet het er alsvolgt uit.

Afbeeldingslocatie: http://members.home.nl/snipsel/tabel.gif


de tabel FORUMREPLY is doormiddel van het FORUMID aan het ID van de tabel FORUMTOPIC gekoppeld.

zoals misschien al deed vermoeden gebruik ik dit voor een forumpje. op het moment gebruik ik deze query om de topic uit te lezen:

code:
1
SELECT * FROM forumtopic ORDER BY id DESC


ik ben dus op zoek naar een query.. die de topics zo uitleest dat het topic waar het laatst op is gereply'ed bovenaankomt te staan. het beste leek me dit te doen via de datum en de tijd.. maar verder dan de volgende query kom ik niet.

code:
1
SELECT * FROM forumtopic ORDER BY datum, tijd DESC

Verwijderd

weet niet zeker, maar lukt dit?:
code:
1
2
3
4
5
SELECT forumtopic.ID, max(forumreply.datum) as lastreply
FROM forumtopic, forumreply
WHERE forumreply.forumID = forumtopic.ID
GROUP BY forumtopic.ID
ORDER BY lastreply DESC

  • Noordamski
  • Registratie: Oktober 2002
  • Laatst online: 25-07 23:00

Noordamski

yibbedi yibbeda

Waarom zou je van de tijd en datum 2 velden maken? 1 is m.i. net zo makkelijk.
Aannemende dat een topic ook een naam heeft (of titel of iets dergelijks)

SELECT forumtopic.ID, forumtopic.Naam, forumtopic.Tijd
FROM forumreply INNER JOIN forumtopic ON forumreply.ForumID = forumtopic.ID
ORDER BY forumreply.Tijd DESC;

:)

If you can't convince them with facts, dazzle them with bullshit


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Let op dat in een ORDER BY voor alle velden de sort-order aangegeven moet worden als je niet de default (ASC) wil gebruiken.

ORDER BY datum, tijd DESC is dus niet gelijk aan ORDER BY datum DESC, tijd DESC

Today's subliminal thought is:


Verwijderd

Topicstarter
thnx mensen ik denk dat ik er zo wel uitga komen.

Verwijderd

Topicstarter
code:
1
2
SELECT * FROM forumreplys INNER JOIN forum ON forumreplys.ForumID = forum.ID 
ORDER BY forumreplys.Datum, forumreplys.Tijd DESC


deze query werkt prima.. op 1 nadeel.. ik krijg het topic herhaardelijk te zien aan het aantal replys dus er zijn bijv.. 5 reply's op een topic dan krijg ik dit topic ook 5 keer te zien.. ik denk dat als ik het even alat zien dat het makkelijker te begrijpen is.

http://www.jodedo.nl/forum/forum2.php

wat kan ik hier aan doen?

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Verwijderd schreef op 20 oktober 2002 @ 15:13:
code:
1
2
SELECT * FROM forumreplys INNER JOIN forum ON forumreplys.ForumID = forum.ID 
ORDER BY forumreplys.Datum, forumreplys.Tijd DESC


deze query werkt prima.. op 1 nadeel.. ik krijg het topic herhaardelijk te zien aan het aantal replys dus er zijn bijv.. 5 reply's op een topic dan krijg ik dit topic ook 5 keer te zien.. ik denk dat als ik het even alat zien dat het makkelijker te begrijpen is.

http://www.jodedo.nl/forum/forum2.php

wat kan ik hier aan doen?
In een SQL boek lezen, vooral bij 'group by'.

Who is John Galt?


Verwijderd

Topicstarter
wanneer ik vervolgens gebruik...

code:
1
2
SELECT * FROM forumreplys INNER JOIN forum ON forumreplys.ForumID = forum.ID 
GROUP BY forum.id ORDER BY forumreplys.Datum, forumreplys.Tijd DESC


vervolgens klopt mijn output niet meer.. ik krijg de verschillende topics in beeld, samen met het eerst geposte bericht ipv. het laatst geposte bericht :s

Verwijderd

Topicstarter
ikke moeilijk doen..... heb bij de tabel forum 2 extra velden aangemaakt.. laatstetijd en laatstedatum... deze worden steeds geupdate wanneer er een reactie wordt geplaatst. en vervoglens sorteer ik hier dus op.

Verwijderd

Verwijderd schreef op 21 oktober 2002 @ 01:43:
ikke moeilijk doen..... heb bij de tabel forum 2 extra velden aangemaakt.. laatstetijd en laatstedatum... deze worden steeds geupdate wanneer er een reactie wordt geplaatst. en vervoglens sorteer ik hier dus op.
heb je de tijd ook nog opgedeeld in aparte kolommen: uur min sec?
:p

waarom doe je dit niet in 1? het hoort bij elkaar en je zal nooit alleen de tijd updaten en de datum niet. dus er is geen reden om ze te splitsen denk ik :)

Verwijderd

SELECT * FROM forumtopic,forumreply WHERE forumtopic.id=forumreply.forumID ORDER BY id DESC

Verwijderd

Verwijderd schreef op 21 oktober 2002 @ 02:58:
[...]


heb je de tijd ook nog opgedeeld in aparte kolommen: uur min sec?
:p

waarom doe je dit niet in 1? het hoort bij elkaar en je zal nooit alleen de tijd updaten en de datum niet. dus er is geen reden om ze te splitsen denk ik :)
timestamp :X
Pagina: 1