Toon posts:

[MYSQL] count en select *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi!

Kan ik in één query alle topics tellen uit de tabel topics, alle replies uit de tabel replies en alle users uit de tabel users? Dus net zoals GOT doet als je niet ingelogd bent?

Als ik alles simpelweg count, dan kirjg ik bij alle drie dezelfde getallen. Moet ik de tabellen joinen? Lijkt me niet toch? Of met union? Hoe kan ik dit het beste doen?

Het makkelijkste is natuurlijk 3 queries maken, 1 voor de topics, 1 voor de replies en 1 voor de users... Maar dat lijkt me overbodige databasebelasting, toch?

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:57
Ja, dat kan. Onder andere met een UNION. Je post het antwoord hier eigenlijk zelf al, waarom heb je het nog niet eens uitgeprobeerd ipv het eerst te vragen? Dat snap ik niet hoor.

Als je het met een union doet, heb je wel voor iedere tabel een nieuwe rij in uw resultset. Dus misschien is het dan wel beter om er nog een veldje bij op te nemen die weergeeft over welke tabel het gaat:
code:
1
2
3
4
5
6
select "tblposts", count(tblpost.*)
from ..
...
union
select "tbltopics", count(tbltopics.*)
....

https://fgheysels.github.io/


Verwijderd

select count(replies.*),count(topics.*) from replies,topics

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:57
Op maandag 11 februari 2002 20:00 schreef TimD het volgende:
select count(replies.*),count(topics.*) from replies,topics
Gaat volgens mij niet echt het juiste resultaat opleveren. Ik heb het niet getest, maar ik vermoed dat je een count van een cartesiaans product terugkrijgt.

Wat je zult terugkrijgen is, aantal recors in replies * aantal records in topics

https://fgheysels.github.io/


Verwijderd

Topicstarter
Inderdaad, die manier van Tim werkt niet... dat heb ik geprobeerd... Ik krijg bij alle 3 de uitkomsten 1520, terijwl ik momenteel 15 topics, 20 replies en 5 users heb ofzow ;)

Dat union heb ik idd niet uitgeprobeerd, maar wel het een en ander over gelezn. Ik heb altijd begrepen dat de tabellen een gelijk aantal kolommen moesten hebben, vandaar dat ik dacht dat je dat niet kon gebruiken.

Ik zal het direct even testen, kijken of dat lukt. Thanx!

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:57
Op maandag 11 februari 2002 20:06 schreef BarisArt het volgende:
Inderdaad, die manier van Tim werkt niet... dat heb ik geprobeerd... Ik krijg bij alle 3 de uitkomsten 1520, terijwl ik momenteel 15 topics, 20 replies en 5 users heb ofzow ;)

Dat union heb ik idd niet uitgeprobeerd, maar wel het een en ander over gelezn. Ik heb altijd begrepen dat de tabellen een gelijk aantal kolommen moesten hebben, vandaar dat ik dacht dat je dat niet kon gebruiken.

Ik zal het direct even testen, kijken of dat lukt. Thanx!
De tabellen moeten niet een gelijk aantal kolommen hebben om een union te doen, dacht ik, maar wel het aantal velden dat je selecteert in uw select moeten gelijk zijn in aantal dacht ik.

https://fgheysels.github.io/


Verwijderd

Topicstarter
code:
1
2
3
SELECT "tblForumMsg", Count(tblForumMsg.MsgID) FROM tblForumMsg
UNION
SELECT "tblForumReply", Count(tblForumReply.ReplyID) FROM tblForumReply;

werkt niet, en
code:
1
2
3
SELECT Count(tblForumMsg.MsgID) AS blaat FROM tblForumMsg
UNION
SELECT Count(tblForumReply.ReplyID) AS blabla FROM tblForumReply;

ook niet :'(

You have an error... etc

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:57
Welke error precies?

Ik heb het net eens uitgetest (op een Access db) en het werkt prima. Misschien dat jouw DBMS geen UNION's ofzo kent? who knows...

https://fgheysels.github.io/


  • Femme
  • Registratie: Juni 1999
  • Laatst online: 02:42

Femme

Hardwareconnaisseur

Official Jony Ive fan

UNION werd pas in MySQL 4.0.0 geïntroduceerd. Waarschijnlijk gebruik jij MySQL 3.23 en kun je dus geen gebruik maken van UNION statements.

http://www.mysql.com/doc/U/N/UNION.html

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:57
MySQL suckt eigenlijk big time als ik dit zo zie. Geen UNION's, geen referentiele integriteit, geen subqueries etc.

Het mag dan wel gratis zijn, maar aan functionaliteit laat het blijkbaar heel wat te wensen over.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Krijgen we die discussie weer :)

Hehe..!

Hmm, geen flauw idee welke versie mijn webserver draait... Ik draai op mijn eigen server wel een nieuwe versie 4.01 geloof ik (in ieder geval de nieuwste)...

Die error is zon vage standaarderror... You have an error in you syntax near '[hier de hele query]', line 1... wordt je dus ook niet veel wijzer van.

Ik maak mbv van Access een koppeling naar de MySQL DB. Ik maak wel gewoon 3 query's :(

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op maandag 11 februari 2002 20:17 schreef whoami het volgende:
MySQL suckt eigenlijk big time als ik dit zo zie. Geen UNION's, geen referentiele integriteit, geen subqueries etc.

Het mag dan wel gratis zijn, maar aan functionaliteit laat het blijkbaar heel wat te wensen over.
Wheheheh, precies mijn gedachte erover ;)

Ow, EN het is 'lekker snel' (niet dat snelheid altijd de beste keus is... magoed).

Verwijderd

Op maandag 11 februari 2002 20:17 schreef whoami het volgende:
MySQL suckt eigenlijk big time
Draai thuis personal edition van oracle.. lekker krachtig en velen malen beter.. maar voor hosting bedrijven is dit een hele aanschaf, die betalen zich lam aan een licentie voor zoiets
Pagina: 1