webForumDet fria alternativet

Hur göra med count vid flera tabeller?

Databaser & SQL

8 svar · 482 visningar · startad av Inferis

Medlem sedan sep. 2000667 inlägg
Frågan#1

Hej.
Hur räknar man när det gäller flera tabeller där varje tabell har flera värden?

sql = "select count(S.ID),S.A_ID, A.ID, A.BAND_ID from A INNER JOIN S ON S.A_ID = A.ID WHERE A.BAND_ID = "& bandid &" GROUP BY 2" 
set rs = Connection.execute(SQL)
antal = rs(0)

Alltså..
I tabell S finns det flera rader där S.A_ID = A.BAND_ID
I tabell A finns der flera rader där A.BAND_ID = "& bandid &"

Medlem sedan dec. 200012 464 inlägg
#2

Vad vill du räkna? Ge exempel på datainnehåll och förväntat resultat.

Flyttas från ASP

Medlem sedan sep. 2000667 inlägg
#3

Vill räkna antal poster i tabell S.

I tabell S finns ett antal poster som hämtar id från tabell A (A.id)
I tabell A försöker jag sortera A.id där A.Band_id är mitt id.("& bandid &")

Medlem sedan dec. 200012 464 inlägg
#4
select count(*) from s
 where a_id in 
     (select id 
        from a
       where band_id = ?)
Medlem sedan sep. 2000667 inlägg
#5

Får felmeddelande:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 3.51 Driver][mysqld-4.0.24_Debian-10sarge1-log]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select ID from ALBUM where BAND_ID = 81)' at line 1

SQL = "select count(*) from SONG where ALBUM_ID in (select ID from ALBUM where BAND_ID = "& id &")"
Medlem sedan juni 200032 967 inlägg
#6

Du har en gammal version av MySQL. Subqueries stöds från och med version 4.1.

Kan du uppgradera?

Medlem sedan sep. 2000667 inlägg
#7

Kan inte uppgradera tyvärr. Finns det ett alternativt sätt att räkna posterna?

Medlem sedan juni 200032 967 inlägg
#8
select count(*) from song
inner join album on song.album_id = album.id
where album.band_id = 4711
Medlem sedan sep. 2000667 inlägg
#9

Tack @nders!
Jag trodde man var tvungen att ange alla filer, men det räcker tydligen med count(*)
Är det prestandamässigt sämre? Alltså märkbar skillnad.

249 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)