webForumDet fria alternativet

Två count i en fråga

Databaser & SQL

1 svar · 268 visningar · startad av Dino

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

(Access)
Har tre tabeller liknande:

CREATE TABLE tabl1
(
   t1_id tal räknare
   t1_title text
)

CREATE TABLE table2
(
   t2_id tal räknare
   t2_t1_id tal
   t2_title text
)

CREATE TABLE table3
(
   t3_id tal räknare
   t3_t2_id tal
   t3_title text
)

Vad jag skulle vilja är att i en fråga räkna hur många t2 som finns i t1 och t3 som finns i varje t2 i t1. Första uträkningen går ju bra som nedan, men problemet är hur jag skall få in den andra räkningen i frågan.

SELECT t1_id, t1_title, (SELECT COUNT(t2_id) FROM table2 WHERE t2_t1_id = t1_id) as total2 FROM table1
Medlem sedan sep. 20011 914 inlägg
#2

Fick hjälp på annat ställe. Om någon är intresserad så blev detta lösningen.

Tom Ellison skrev:

Query1:

SELECT T1,t1_id, COUNT(*) As t2Count
   FROM table1 T1
      INNER JOIN table2 T2 ON T2.t2_t1_id = T1.t1_id
   GROUP BY T1.t1_id

This is an alternative way to get the same result as you current one.

Query2:

SELECT T1.t1_id, COUNT(*) AS t3Count
   FROM table1 T1
      INNER JOIN table2 T2 ON T2.t2_t1_id = T1.t1_id
      INNER JOIN table3 T3 ON T3.t3_t2_id = T2.t2_id
   GROUP BY T1.t1_id

Now you can put it all together.

Query3:

SELECT Q1.t1_id, Q1.t2Count, Q2.t3Count
   FROM Query1 Q1
      LEFT JOIN Query2 Q2 ON Q2.t1_id = Q1.t1_id

263 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)