Avatar billede angelenglen Nybegynder
01. marts 2011 - 10:40 Der er 2 kommentarer og
1 løsning

Hjælp til join

Jeg har brug for at hente antallet af poster fra en tabel ud, men kan ikke helt gennemskue hvordan/om jeg kan gøre det i én sætning.


Her er en grov oversigt over hvordan tabellerne relaterer til hinanden:

Tabel 1: samlinger
  Række 1: id

Tabel 2: pakker
  Række 1: id
  Række 2: samling_id

Tabel 3: dele
  Række 1: id
  Række 2: pakke_id

Tabel 4: hits
  Række 1: id
  Række 2: del_id

Alle rækkerne indeholder integers.
(Der er selvfølgelig flere rækker, men dette er de relevante for at løse opgaven.)

Tabel 4 indeholder en masse poster der hører til forskellige dele, der igen hører til forskellige pakker, der hører til en samling.


Eksempel:

En samling indeholder 3 pakker
Hver pakke indeholder 2 dele
Hver del indeholder 20 hits

Det tal jeg så gerne vil have returneret er så 120
(20 hits * 2 dele * 3 pakker)

fra hit til samling er relationen:
id --> del_id --> pakke_id --> samling_id


Håber det giver mening, ellers spørg gerne :-D
01. marts 2011 - 10:49 #1
SELECT * from samlinger s JOIN pakker p ON s.id = p.samling_id JOIN dele d ON p.id = d.pakke_id JOIN hits h ON  d.id = p.del_id WHERE s.id = [den samling du er ude efter]
Avatar billede angelenglen Nybegynder
01. marts 2011 - 11:14 #2
Det ser ud til at virke, det eneste jeg ændrede var at ændre
SELECT *
til
SELECT Count(*) as Antal

for at få resultatet som et enkelt tal, frem for en masse rækker.

Mange tak!

(læg venligst et svar for points)
01. marts 2011 - 11:18 #3
Svar fra mig.

(Det var mig ikke helt tydeligt at det var antal hits du ville have.)
Avatar billede 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. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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