[BC3] [sql] een count(*) de where clause laten negeren

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo iedereen.. voor de 2e keer vandaag!
''k ben vandaag echt into sql queries etc (ik heb nl een forumpje wat ik een beetje aan het streamlinen ben).. maar to the point ;)
ik heb een query, die een topicnaam, topicstarter, aantal replies en laatste replie ophaalt uit 2 tabellen, en deze sorteerd naar laatste reply..

select t1.topicstarter,t1.topicname,t1.id as id,max(t2.time) as time,count(*) as num_posts from highforumtopics as t1, highforum as t2 where t1.id=t2.id AND t1.forumid=\"$fid\" AND time>".$mkt." group by t1.id order by time DESC;

time is de laatste reply en die moet groter zijn dan $mkt.. $mkt=mktime()-(een paar dagen)
$fid = een forum id..
nu komt er het volgende probleem..
het aantal replies dat de sql query uitspuugt, is alleen de posts die binnen $mkt liggen, terwijl ik alle posts in een topic graag wil zien..

heeft iemand hier aub een oplossing voor? als die bestaat..?

bvd :)

Acties:
  • 0 Henk 'm!

Verwijderd

Simpel toch, een aparte query doen die de count van alle topics ophaalt.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja ok... dat gebruikte ik eerst ook, sterker nog.. ik haalde eerst alle topics op en liet php ze sorteren naar tijd enzo.. wat als gevolg een gigantisch lange parse-tijd had.. maar nu probeer ik dus met 1 query alles te doen.. als dat mogelijk is tenminste..

Acties:
  • 0 Henk 'm!

Verwijderd

voor de duidelijkheid:

meerdere query''s is echt geen schande hoor!
je moet niet denken dat je altijd alles in 1 query moet zien te rammen, omdat dat beter zou zijn.

Acties:
  • 0 Henk 'm!

  • BC3 Victim
  • Registratie: Juli 2001
  • Laatst online: 29-09-2006
wat is je precieze probleem ?
-1- performance ??
gebruik een view en/of probeer geen date/time datatypes in een where te gebruiken (select count(1) from myview)

-2- anders uitschrijven/makkelijker lezen..

$myfrom = ''t1.veld1, t2.veld2'';
$mywhere = ''t1.veld1 = t2.veld2'';
$myrest = ''group by t1.id order by time desc'';

$aantal = ''select count ($myfrom) where $mywhere'';
$dequery = ''select $myfrom where $mywhere $myrest'';

De username van de oorspronkelijke plaatser van deze posting is bij Big Crash 3 eind mei 2001 verloren gegaan. Om toch de posting zelf terug te kunnen plaatsen is de user BC3 Victim in het leven geroepen


Acties:
  • 0 Henk 'm!

  • tomato
  • Registratie: November 1999
  • Niet online
Op vrijdag 25 mei 2001 20:26 schreef woeitje het volgende:
voor de duidelijkheid:

meerdere query''s is echt geen schande hoor!
je moet niet denken dat je altijd alles in 1 query moet zien te rammen, omdat dat beter zou zijn.
[o-t]
Precies, volgens mij is dat een trend aan het worden hier :)
Ik zie steeds vaker mensen die hier blindelings naar streven, maar vaak is het totaal onlogisch.
[/o-t]

Acties:
  • 0 Henk 'm!

Verwijderd

Ideetje voor de FAQ! :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Kan ik hieruit opmaken dat dat een "nee" is? 8-)

Acties:
  • 0 Henk 'm!

Verwijderd

Op vrijdag 25 mei 2001 21:04 schreef rhand0z het volgende:
Kan ik hieruit opmaken dat dat een "nee" is? 8-)
goh :)

Acties:
  • 0 Henk 'm!

Verwijderd

Op vrijdag 25 mei 2001 21:04 schreef rhand0z het volgende:
Kan ik hieruit opmaken dat dat een "nee" is? 8-)
Misschien wel, misschien niet! ;)
Pagina: 1