webForumDet fria alternativet

Enkel count

4 svar · 240 visningar · startad av jonne

jonneMedlem sedan jan. 20011 097 inlägg
#1

Vad jag trodde skulle vara en enkel count har visat sig vara lite knivigare.

SELECT COUNT(Scr.scrID) AS Screenshots, COUNT(Mem.memID) AS Members, COUNT(Lkn.linkID) AS Links
FROM tblScreenshots AS Scr, tblMembers AS Mem, tblLinks AS Lkn

ger

+-------------+---------+-------+
| Screenshots | Members | Links |
+-------------+---------+-------+
|        8640 |    8640 |  8640 |
+-------------+---------+-------+

men de siffrorna är helt uppåt väggarna fel. Är mer i stil med 15, 32,19.
Det enda jag vill göra är att räkna hur många poster varje tabell innehåller i en och samma SQL sats. Vad gör jag för fel?

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Det du får är antalet rader i kryssprodukten av alla tabeller.

select count(*), 'Screenshots' from tblScreenshots union all
select count(*), 'Members from tblMembers union all
select count(*), 'Links' from tblLinks
jonneMedlem sedan jan. 20011 097 inlägg
#3

Möjligt att min hjärna går på lågvarv nu, men den klagar på union delen i det du skrev LarsG.

LarsGMedlem sedan dec. 200012 465 inlägg
#4

Ok, union finns inte i alla versioner av Mysql. Det kom först i version 4 någonting.

Då ser jag inget alternativ än att ställa tre frågor. Det borde inte vara någon speciellt märkbar prestandaförlust

jonneMedlem sedan jan. 20011 097 inlägg
#5

Ok kör 3.23.47 på servern. Får köra med flera frågor då. Tackar för visat intresse :)

125 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
122 ms — hämta tråd, inlägg och bilagor (db)