Hulp nodig met (voor mij) lastige SQL query

Pagina: 1
Acties:

  • GAEvakYD
  • Registratie: Juni 2001
  • Laatst online: 15:15
Ik ben bezig met het maken van een forum. Nu wil ik dat altijd de
laaste post (reactie of nieuw topic) bovenaan komt te staan in de lijst.

Het zit zo, ik heb een tabel forum, hierin komen staan alle hoofdberichten. Dus zeg maar
de topicstaters. Deze tabel heeft deze atrributen:

[SQL]
id titel naam tijd datum email bericht hits
[/SQL]

Nu heb ik nog een tabel, die heet forumreplys. Zoals de naam al zegt komen hier alle
reply's te staan op de forumid's uit de eerste tabel.

[SQL]
id forumid titel naam tijd email datum bericht
[/SQL]

Wat nu dus het probleem is dat ik als result uit de query wil hebben in welke topic
voor het laatst gereageerd is (incl nieuw topic). Er moet dus op datums uit beide
tabellen gechecked worden.

Please help me.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 31-08 15:46

mulder

ik spuug op het trottoir

Ten eerste: wat heb je al?
Je moet een order by gebruiken en een join.. probally

oogjes open, snaveltjes dicht


  • GAEvakYD
  • Registratie: Juni 2001
  • Laatst online: 15:15
Op dit moment heb ik heel simpel select * from forum Wat dus gewoon alle topics oplevert maar meer ook niet.

  • GAEvakYD
  • Registratie: Juni 2001
  • Laatst online: 15:15
W8t ik krijg nu een ingeving. Met een inner join en daarna sorteren. Ik heb nu dit (wat niet werkt)

SELECT * FROM forum as f INNER JOIN forumreplys as fr ON f.id = fr.forumi ORDER BY tijd";

Verwijderd

[sql]select * from forum inner join replys on forum.id=replys.forumid order by forum.date[/sql]

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 31-08 15:46

mulder

ik spuug op het trottoir

GAEvakYD schreef op 04 oktober 2002 @ 19:54:
W8t ik krijg nu een ingeving. Met een ineer join en daarna sorteren
BRILLIANT!! :P

Post je resultaat even!

oogjes open, snaveltjes dicht


Verwijderd

GAEvakYD schreef op 04 oktober 2002 @ 19:54:
W8t ik krijg nu een ingeving. Met een ineer join en daarna sorteren
w00t?? dat zeg ik net tegen je op msn... laat anderen je maar helpen, ik ben weg :(

  • GAEvakYD
  • Registratie: Juni 2001
  • Laatst online: 15:15
SELECT * FROM forum as f INNER JOIN forumreplys as fr ON f.id = fr.forumid

Moet ik nu een GROUP BY doen ofniet?

Verwijderd

GAEvakYD schreef op 04 oktober 2002 @ 20:32:
SELECT * FROM forum as f INNER JOIN forumreplys as fr ON f.id = fr.forumid

Moet ik nu een GROUP BY doen ofniet?
Ik heb altijd geleerd dat je bij aliases van tabelnamen geen as gebruikt, maar dat terzijde.
Wat wil je bereiken met die GROUP BY?

Is heb nog nooit iets met een forum gedaan, maar het lijkt me op het eerste gezicht handiger om alle posts in een tabel te zetten, ipv de eerste apart... wordt dit vaker zo gedaan?

  • Morpheus_at_work
  • Registratie: December 2000
  • Laatst online: 12:55
Verwijderd schreef op 04 oktober 2002 @ 19:56:
[...]


w00t?? dat zeg ik net tegen je op msn... laat anderen je maar helpen, ik ben weg :(
goed gedaan van je ;) , je weet gelijk wie je niet meer helpt de volgende keer ;)

Canon R6 MARK III, 35mm 1.4 VCM, 50mm 1.4 VCM , 85mm 1.4 VCM , 17-35mm 1.8, 28-70 1.8 , 24-105 1.8 70-200 f2.8


  • Morpheus_at_work
  • Registratie: December 2000
  • Laatst online: 12:55
Verwijderd schreef op 05 oktober 2002 @ 00:01:
[...]

Ik heb altijd geleerd dat je bij aliases van tabelnamen geen as gebruikt, maar dat terzijde.
Wat wil je bereiken met die GROUP BY?

Is heb nog nooit iets met een forum gedaan, maar het lijkt me op het eerste gezicht handiger om alle posts in een tabel te zetten, ipv de eerste apart... wordt dit vaker zo gedaan?
die group by heeft hij nog om het aantal hits weer te geven , maar dan moet hij wel even een count(itemnaam) as hits toevoegen en achteraan een group by zetten met de items die hij niet wil verliezen door een group by

Canon R6 MARK III, 35mm 1.4 VCM, 50mm 1.4 VCM , 85mm 1.4 VCM , 17-35mm 1.8, 28-70 1.8 , 24-105 1.8 70-200 f2.8


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

De beste tip die ik kan geven is ff zoeken.
Er zijn legio topics te vinden over het zelf bouwen van een forum.
Zo zul je lezen dat je dit het beste op kunt lossen door het opnemen van redundante gegevens.

Who is John Galt?


Verwijderd

Morpheus_at_work schreef op 05 oktober 2002 @ 00:04:
[...]


die group by heeft hij nog om het aantal hits weer te geven , maar dan moet hij wel even een count(itemnaam) as hits toevoegen en achteraan een group by zetten met de items die hij niet wil verliezen door een group by
Als ik het goed begrijp is het de bedoeling dat er een selectie gemaakt moet worden uit items die uit verschillende tabellen komen, volgens mij kan dat helemaal niet op deze manier, omdat je met die JOIN de tabel alleen 'in de breedte vergroot', om maar eens jip- en janneketaal te gebruiken...

[ Voor 0% gewijzigd door Verwijderd op 05-10-2002 00:09 . Reden: typo ]


  • GAEvakYD
  • Registratie: Juni 2001
  • Laatst online: 15:15
Morpheus_at_work schreef op 05 oktober 2002 @ 00:04:
[...]


die group by heeft hij nog om het aantal hits weer te geven , maar dan moet hij wel even een count(itemnaam) as hits toevoegen en achteraan een group by zetten met de items die hij niet wil verliezen door een group by
Gaat er effe mee bezig. Was net effe gestopt omdat ik er toch niet meer uitkwam. Dus van beide tabellen moet ik alle colommen in de GROUP BY zetten die ik niet wil verliezen??

  • GAEvakYD
  • Registratie: Juni 2001
  • Laatst online: 15:15
Trouwens als er nu op een een topic geen reply's zijn komt dat topic ook niet uit de query ofwel? Want een inner joins voegt tabellen op de ON statement samen. Mocht er nu een nieuw topic zijn die geen reacties heeft walt er niet te matches met elkaar dus krijg je die niet als resultaat

  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

code:
1
2
3
4
5
6
SELECT id, 0, titel, naam, tijd, datum, email, bericht
FROM forum
UNION
SELECT id, forumid, titel, naam, tijd, datum, email, bericht 
FROM forumreplys
ORDER BY datum DESC

  • GAEvakYD
  • Registratie: Juni 2001
  • Laatst online: 15:15
robjanssen schreef op 05 oktober 2002 @ 08:41:
code:
1
2
3
4
5
6
SELECT id, 0, titel, naam, tijd, datum, email, bericht
FROM forum
UNION
SELECT id, forumid, titel, naam, tijd, datum, email, bericht 
FROM forumreplys
ORDER BY datum DESC
hmmmmm, hij pakt die UNION niet ofzo. Dit is de error

You have an error in your SQL syntax near 'UNION SELECT id, forumid, titel, naam, tijd, datum, email, bericht FROM forumre' at line 2

Dit is de code die ik gebruik:

$sql = "SELECT id, 0, titel, naam, tijd, datum, email, bericht FROM forum
UNION
SELECT id, forumid, titel, naam, tijd, datum, email, bericht FROM forumreplys ";

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Je zou eventueel ook nog kunnen kiezen om per topic bij te houden wanneer de laatste reply was, hoewel dit opzich niet noodzakelijk is, kan het performance technisch gezien wel fijner zijn.
Pagina: 1