[SQL] Join Probleem

Pagina: 1
Acties:

  • Denga
  • Registratie: September 2000
  • Laatst online: 15-11-2022

Denga

The riding never stops....

Topicstarter
Goedemiddag,

ik heb een klein vraagje over een probleem waar ik tegenaan loop...
Ik heb een database met daarin tabellen:

tblPersoon
tblLidmaatschap
SYSLidmaatschap

Nu zijn:

SYSLidmaatschap en tblLidmaatschap gekoppeld op IDLidmaatschap
tblPersoon en tbl Lidmaatschap gekoppeld op IDPersoon.

tbl Lidmaatschap is dus in feite een koppeltabel. Nu voer ik op deze tabel een count uit om te kijken hoeveel leden een bepaalde afdeling heeft.

dit doe ik met sql:

code:
1
2
3
4
5
SELECT x.cboLidmaatschap, (select count(*)
from tblLidmaatschap y where y.cboLidmaatschap = x.cboLidmaatschap) AS Telling
FROM tblLidmaatschap AS x
WHERE x.cboLidmaatschap Is Not Null and (x.cboLidmaatschap=4 OR x.cboLidmaatschap=6 OR x.cboLidmaatschap=7 OR x.cboLidmaatschap=8)
GROUP BY x.cboLidmaatschap;


Maar nu geeft ie dus weer:

code:
1
2
3
4
5
cboLidmaatschap Telling
         4                     57
         6                     54
         7                     32
         8                      1


Nu wil ik ipv de nummers 4, 6,7 of 8 de namen van de afdelingen zoals die in SYSLidmaatschap staan, maar hoe krijg ik dit voor elkaar? Of is dit überhaupt wel mogelijk?

Never eat yellow snow...


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Waar hoort mijn topic?

SEA >> PRG

En lees even onze SQL faq door, zeker het gedeelte over joins ;)

[ Voor 30% gewijzigd door RobIII op 18-07-2007 13:40 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

De semantiek vind ik niet even duidelijk. Als ik het goed begrijp is dit de situatie:

Persoon: id | etc.
Lidmaatschap (many-to-many): Id (id van Persoon) | Abonnement (id van Abonnement)
Abonnement (SYSLidmaatschap): id | naam | etc.

Id en Abonnement geven relaties aan.


SQL:
1
2
3
4
5
SELECT Lidmaatschap.Abonnement, Abonnement.naam, COUNT(Lidmaatschap.Id) AS AantalAbonnementen
FROM Lidmaatschap
INNER JOIN Abonnement ON Lidmaatschap.Abonnement = Abonnement.id
WHERE Abonnement.id = $x AND Abonnement.id = $y
GROUP BY Abonnement.id