loukas Mester
02. juni 2019 - 17:45 Der er 6 kommentarer og
1 løsning

COUNT() fra anden tabel

Jeg har 2 tabeller, og i den ene tabel skal jeg bruge antallet af records fra den anden tabel
Noget i den her stil:
"hosts.host_antalsider = "COUNT(*) WHERE sider.hostid=intHostid"

tabel1:
hosts
-hostid
-hostname
-host_antalsider

tabel2:
sider
-side_id
-hostid
-side_url
-side_title


Ved det ikke, men kan man ikke bruge views, stored procedure eller en function ?
Har ingen erfaring med nogen af dem.
Håber det er til at forstå, og at der er en som kan / vil hjælpe mig.
arne_v Ekspert
02. juni 2019 - 18:08 #1
SELECT hostname,COUNT(*) AS antalsider
FROM hosts JOIN sider ON hosts.hostid = sider.hostid
GROUP BY hostname
loukas Mester
02. juni 2019 - 19:23 #2
Tusind tak for hjælpen.
Jeg skal bruge tallet(antal sider) ret ofte, så er bange for at det bliver for tungt
at tælle dem "COUNT(*)" hver gang det skal bruges. Der er lidt mere end 500.000 records.

Men jeg kunne godt tænke mig at antallet af sider kom til at være i tabellen hosts.host_antalsider.

Kan man lave en function/procedure der opdaterer tallet når der er ændringer i tabellen 'sider' ?
arne_v Ekspert
02. juni 2019 - 19:45 #3
Principielt kan du lave en AFTER INSERT TRIGGER i side tabellen.

https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html

Men jeg er ikke helt vild med loesningen.
arne_v Ekspert
02. juni 2019 - 19:53 #4
Jeg ville foretraekke bare at cache resultatet i applikationen.
loukas Mester
02. juni 2019 - 21:00 #5
hvorfor vil du foretrække cache løsningen ?
arne_v Ekspert
02. juni 2019 - 21:24 #6
Renere database model.

Det er ikke godt at have data i sin database som kan beregnes udfra andre data i databasen.
loukas Mester
02. juni 2019 - 22:32 #7
Jeg siger tak for hjælpen for nu :-)
Vil prøve mig frem, og se hvad der fungerer bedst.
Tror det bliver cache løsningen.....
For at holde database modellen så 'clean' som muligt.
Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links

Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





Premium
Test: Huaweis Matebook X er særlig laptop med en svaghed, som du skal være opmærksom på
Huawei beviser endnu en gang, at de sagtens kan mingle sig med de bedste pc-producenter. Men alligevel skyder selskabet lidt ved siden af, med sin nyeste maskine.
Computerworld
Bitcoinen nåede lige at kulminere igen – men så kom krakket
Der blev sat en ny rekord for bitcoinens værdi i år – men godt 24 timer efter blev der høvlet næsten 20.000 kroner af den.
CIO
Podcast: Her er seks gode råd om ledelse og digitalisering fra danske top-CIO'er
The Digital Edge: Vi har talt med 17 af Danmarks dygtigste digitale ledere - og samlet deres seks bedste råd om digitalisering og ledelse. Få alle rådene på 26 minutter i denne episode af podcasten The Digital Edge.
Job & Karriere
Se Waoos forklaring: Derfor har selskabet fyret topchef Jørgen Stensgaard med omgående virkning
Waaos bestyrelse opsiger fiberselskabets topchef, Jørgen Stensgaard, der fratræder med omgående virkning. Se hele forklaringen fra Waao her.
White paper
Gratis whitepaper: Hvad er EDI, og hvordan kan det styrke min forretning?
Overvejer du EDI, og ønsker du at undersøge, om EDI er den rette investering for din virksomhed? Har en af dine kunder eller leverandører for nyligt bedt dig om at udveksle elektroniske dokumenter (EDI)? Så hent dette whitepaper og få et overblik over, hvad EDI er, og hvilke fordele producenter og grossister som dig kan se frem til, når du investerer i EDI til din forretning.