Het volgende probleem: Ik heb een tabel met relaties en een koppeltabel tussen relaties en componenten. Deze twee tabellen gaat het om.
Er ligt ook een relatie tussen de tabel relatie en dezelfde tabel relatie. Omdat een andere relatie kan erven van de 1e relatie Bijvoorbeeld (ff voorbeeld).
de tabel relatie:
de tabel relatie_componenten
Nu wilde ik graag met een query het volgende weten:
- Alle relatiecodes die nier erfven (Where ErftVan Is Null)
- Het aantal childs die wel erven bij dat relatieID
- Het aantal componenten dat de relatie heeft.
Moet te doen zijn lijkt mij. Makkelijk beginnen alleen de erven erbij zetten:
Dit gaat allemaal goed en wilt ook wel.. Nu dan de componenten erbij... Nou dat wilt dus helemaal niet
Als ik 16 componenten heb, dan doet ie dat keer het aantal erfven (dus al ik 6 erven heb maakt ie er 96 van) En dat wil ik niet
De vraag, wat zie ik over het hoofd, kan ik wel 2 counts op verschillende tabellen doen in dezelfde query op deze manier? Of bou ik mijn query gewoon verkeerd op?
Er ligt ook een relatie tussen de tabel relatie en dezelfde tabel relatie. Omdat een andere relatie kan erven van de 1e relatie Bijvoorbeeld (ff voorbeeld).
de tabel relatie:
| relatieid | relatiecode | erftvan |
| 1 | jasper | Null |
| 2 | test | Null |
| 3 | GoT | 2 |
| 4 | Tweakers | Null |
| 5 | temp | 2 |
| 6 | bla | 1 |
de tabel relatie_componenten
| RelatieID | ComponentID |
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 1 |
| 2 | 5 |
| 4 | 6 |
| 1 | 4 |
| 1 | 5 |
| 4 | 6 |
Nu wilde ik graag met een query het volgende weten:
- Alle relatiecodes die nier erfven (Where ErftVan Is Null)
- Het aantal childs die wel erven bij dat relatieID
- Het aantal componenten dat de relatie heeft.
Moet te doen zijn lijkt mij. Makkelijk beginnen alleen de erven erbij zetten:
SQL:
1
2
| select p.relatiecode, count(c.relatieid) As Aantal_Sites from (relatie p Left Join relatie c On p.RelatieID = c.ErftVan) where p.erftvan Is Null Group By p.RelatieCode |
Dit gaat allemaal goed en wilt ook wel.. Nu dan de componenten erbij... Nou dat wilt dus helemaal niet
SQL:
1
2
3
| select p.relatiecode, count(c.relatieid) As Aantal_Sites, count(componentID) from (relatie p Left Join relatie c On p.RelatieID = c.ErftVan) left Outer Join Relatie_Componenten On p.RelatieID = Relatie_Componenten.RelatieID where p.erftvan Is Null Group By p.RelatieCode |
Als ik 16 componenten heb, dan doet ie dat keer het aantal erfven (dus al ik 6 erven heb maakt ie er 96 van) En dat wil ik niet
De vraag, wat zie ik over het hoofd, kan ik wel 2 counts op verschillende tabellen doen in dezelfde query op deze manier? Of bou ik mijn query gewoon verkeerd op?