Enkel count

Databaser & SQL

4 svar · 250 visningar · startad av jonne

Medlem sedan jan. 20011 154 inlägg
Trådstart#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?

Medlem sedan dec. 200012 464 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
Medlem sedan jan. 20011 154 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.

Medlem sedan dec. 200012 464 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

Medlem sedan jan. 20011 154 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 :)

246 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)