Ok, ik heb een lastig probleempje, het is als volgt:
Ik heb 3 tabellen, die op de juiste manier 'gelinkt' moeten worden, ik heb de tabellen zelf aangemaakt.
De tabellen zien er als volgt uit:
tblTables
tblColumns
tblColumnLink
Ok, even wat aanvullende info: tblColumns.TblID = tblTables.ID, tblColumnLink.ColID = tblColumns.ID en tblColumnLink.ColIDPrim = tblColumns.ID.
Waarvoor dienen de tabellen en waarvoor gaat het dienen... Goed, het is de bedoeling dat de tabel tblTables wordt gevuld met tabel namen(lijkt me duidelijk). Daarnaast moet tblColumns gevuld gaan worden met kolom namen en moet d.m.v. een tblID 'gekoppeld' worden aan een tabel. De tblColumnLink is even een rare tabel misschien. Deze is bedoeld om een relatie te kunnen aangeven tussen twee kolommen uit 2 verschillende tabellen...
Wat is nu precies mijn probleem? Stel de tabellen zijn als volgt gevuld:
TblTables
TblColumns
TblColumnLink
Nu wil ik graag de volgende output krijgen (op basis van de bovenstaande gegevens):
Nu ben ik zelf aan het stoeien geweest met sql, maar ik kom er niet uit... Ik kreeg vaak alleen de kolom namen uit tabel 1 of alleen bijv. alleen 'BedrijfID'.
Hieronder een eigen brouwsel in SQL, die helaas niet werkt:
Graag zou ik een oplossing willen horen... misschien is er iets niet goed in mijn tabel structuur of doe ik iets niet goed in mijn sql code?
Ik heb 3 tabellen, die op de juiste manier 'gelinkt' moeten worden, ik heb de tabellen zelf aangemaakt.
De tabellen zien er als volgt uit:
tblTables
code:
1
2
3
| -ID [integer] -TblName [VARCHAR] -TblDesc [VARCHAR] |
tblColumns
code:
1
2
3
4
| -ID [integer] -ColName [VARCHAR] -ColDesc [VARCHAR] -TblID [integer] |
tblColumnLink
code:
1
2
3
| -ID [integer] -ColID [integer] -ColIDPrim [integer] |
Ok, even wat aanvullende info: tblColumns.TblID = tblTables.ID, tblColumnLink.ColID = tblColumns.ID en tblColumnLink.ColIDPrim = tblColumns.ID.
Waarvoor dienen de tabellen en waarvoor gaat het dienen... Goed, het is de bedoeling dat de tabel tblTables wordt gevuld met tabel namen(lijkt me duidelijk). Daarnaast moet tblColumns gevuld gaan worden met kolom namen en moet d.m.v. een tblID 'gekoppeld' worden aan een tabel. De tblColumnLink is even een rare tabel misschien. Deze is bedoeld om een relatie te kunnen aangeven tussen twee kolommen uit 2 verschillende tabellen...
Wat is nu precies mijn probleem? Stel de tabellen zijn als volgt gevuld:
TblTables
| ID | tblName | tblDesc |
| 1 | tblContracten | Contracten tabel |
| 2 | tblBedrijven | Bedrijven tabel |
| 3 | tblKlanten | Klanten tabel |
TblColumns
| ID | ColName | ColDesc | TblID |
| 1 | Contractnr | Contract nummer | 1 |
| 2 | BedrijfID | Bedrijf nummer | 1 |
| 3 | BedrijfID | Bedrijf nummer | 2 |
| 4 | Bedrijfnaam | Bedrijf naam | 2 |
| 5 | Klantnr | Klantnummer | 3 |
| 6 | Klantnaam | Klant naam | 3 |
TblColumnLink
| ID | ColID | ColIDPrim |
| 1 | 2 | 3 |
Nu wil ik graag de volgende output krijgen (op basis van de bovenstaande gegevens):
- Contractnr
- BedrijfID
- BedrijfNaam
Nu ben ik zelf aan het stoeien geweest met sql, maar ik kom er niet uit... Ik kreeg vaak alleen de kolom namen uit tabel 1 of alleen bijv. alleen 'BedrijfID'.
Hieronder een eigen brouwsel in SQL, die helaas niet werkt:
code:
1
| SELECT C.ColName FROM tblColumns C INNER JOIN tblTables T ON C.TblID=T.ID LEFT JOIN tblColumnLink CL ON C.ID=CL.ColID WHERE C.TblID=1 OR C.ID=CL.ColIDPrim |
Graag zou ik een oplossing willen horen... misschien is er iets niet goed in mijn tabel structuur of doe ik iets niet goed in mijn sql code?