webForumDet fria alternativet

hamta nummer fran tabell1 och en count på tabell2

Databaser & SQL

4 svar · 170 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Frågan#1

Hej

Jag har en tabell som heter mallar och en tabell som heter sidor.
Jag vill göra en sql sökfråga så att den hämtar tittar på mallID i mallar och sedan räknar hur många poster som innehåller mallID i sidor_mall_ID

Så här ser min sql fråga ut just nu:

sqlString = "SELECT mall_namn, mall_nummer " &_
  "FROM mallar " &_
  "ORDER BY mall_namn "

Utskriften ska sedan bli så här:

Standard mall
5 st sidor använder mallen standard

Enkel mall
2 st sidor använder mallen enkel

Test mall
0 st sidor använder mallen test

Medlem sedan jan. 20013 406 inlägg
#2

Med den här koden räknar den alla sidor och ger samma tal på alla mallar.

sqlString = "SELECT (SELECT count(sida_mall) FROM sidor, mallar WHERE sida_mall = mall_id) as antal, mall_namn, mall_nummer  " &_
  "FROM mallar " &_
  "ORDER BY mall_namn "
Medlem sedan jan. 20013 406 inlägg
#3

Fick till det så att det fungerar

sqlString = "select count(sida_mall) as antal, mall_namn from mallar m left outer join sidor s on m.mall_id = s.sida_mall group by mall_namn "

Ser det bra ut?

Medlem sedan jan. 20013 406 inlägg
#4

Med den här koden så visar den inte alla mallar. Om det finns en mall med sammma mall_namn så visas bara 1.

sqlString = "select mall_nummer, count(sida_mall) as antal, mall_namn " &_ 
"from mallar m left outer join sidor s " &_ 
"on m.mall_id = s.sida_mall " &_ 
"group by mall_namn, mall_nummer"
Medlem sedan jan. 20013 406 inlägg
#5

Löste det också med att sätta group by mall_id så fungerar det.

Vad skönt det känns att man sitter här och skriver hur man löser sina egna problem. Min programeringdagbok. :e

277 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
151 ms — hämta tråd, inlägg och bilagor (db)
114 ms — ändringar (db)