Ik ben bezig om al mijn software in een MySQL database te gooien en heb daar de onderstaande indeling in gemaakt [In tabel 1 zijn er wel meerdere entries, maar die zijn in dit verhaal niet van belang].
De reden, dat ik het zo heb gedaan is dat een fabrikant meerdere software pakketten op de markt kan brengen en dat die weer in verschillende categorien onder te verdeln zijn.
bijv. Microsoft brengt o.a. MS Office 2000 en MS Windows XP uit. alle bij van MS, maar verschillende categorien. Qua naam zijn ze uniek, want ik moet nog een andere fabrikant tegenkomen, die een MS Office 2000 op de markt brengt.
Als ik nu zou gaan zoeken in die database, is dat het netste om dat op basis van join statements te doen. Nu ligt daar zeg maar mijn probleem.
Ik krijg namelijk op met geen mogelijkheid die drie tabellen ge-joined. 2 is geen probleem met bijv. een left join.
Wat ik werkende krijg is het onderstaande:
Wat ik ook aan combinaties van join etc. toepas, het enige wat ik extra terug krijg is de eerste fabrikant, die ook wat heeft uitgebracht in die betreffende categorie en niet de echte leverancier / fabrikant.
Wie oh wie weet raad??
B.t.w. op google is een hoop over join statement te vinden, maar gaat niet verder dan het joinen van 2 tabellen.
code:
1
2
3
4
5
6
7
8
9
| Databasenaam: Software Tabel 1 [Software]: Id SoftwareNaam FabrikantId CategoryId Tabel 2 [Fabrikant]: FabrikantId FabrikantNaam Tabel 3 [Category]: CategoryId FabrikantId CategoryNaam |
De reden, dat ik het zo heb gedaan is dat een fabrikant meerdere software pakketten op de markt kan brengen en dat die weer in verschillende categorien onder te verdeln zijn.
bijv. Microsoft brengt o.a. MS Office 2000 en MS Windows XP uit. alle bij van MS, maar verschillende categorien. Qua naam zijn ze uniek, want ik moet nog een andere fabrikant tegenkomen, die een MS Office 2000 op de markt brengt.
Als ik nu zou gaan zoeken in die database, is dat het netste om dat op basis van join statements te doen. Nu ligt daar zeg maar mijn probleem.
Ik krijg namelijk op met geen mogelijkheid die drie tabellen ge-joined. 2 is geen probleem met bijv. een left join.
Wat ik werkende krijg is het onderstaande:
code:
1
2
3
4
5
6
7
8
9
10
11
| select Software.SoftwareNaam, Software.Fabrikant, Category.Category from Software left join Category on Category.CategoryId = Software.CategoryId where Software.SoftwareNaam = 'MS Office 2000' |
Wat ik ook aan combinaties van join etc. toepas, het enige wat ik extra terug krijg is de eerste fabrikant, die ook wat heeft uitgebracht in die betreffende categorie en niet de echte leverancier / fabrikant.
Wie oh wie weet raad??
B.t.w. op google is een hoop over join statement te vinden, maar gaat niet verder dan het joinen van 2 tabellen.
leica - zeiss - fuji - apple | PSN = Sh4m1n0