Ik loop bij het opzetten van een mysql nieuwe database tegen een aantal zaken op.
Ruwweg heb ik een vijftal tabellen zoals in onderstaande afbeelding.

Alle tabellen hebben voor dit voorbeeld de volgende structuur.
Vervolgens wil ik tussen elke tabel een relatie hebben. Zodat ik uiteindelijk een result kan krijgen met alle row conmbinatie's. Om dit mogelijk te makken heb ik op de plekken waar een sterretje staat een meer-op-meer koppeltabel gemaakt "TabelA2TableB", "TableA2TableC", TableB2TableA", etc.
Vervolgens leek het me de manier om vervolgens alle tabellen middels LEFT JOIN aan elkaar te koppelen. Dit is natuurlijk een gigantische lange lijst, echter kom ik op deze manier problemen tegen.
en dan de tabellen daadwerkelijk koppelen middels
Ik loop tegen het probleem op dat bepaalde kolommen nog niet bestaan of dat de kolomnaam niet uniek is. Is er in (my)sql misschien een mogelijkheid dit simpeler te doen. Of kan zoiets helemaal niet?
Ruwweg heb ik een vijftal tabellen zoals in onderstaande afbeelding.

Alle tabellen hebben voor dit voorbeeld de volgende structuur.
code:
1
2
3
| TableA ID (int) TEXT (text) |
Vervolgens wil ik tussen elke tabel een relatie hebben. Zodat ik uiteindelijk een result kan krijgen met alle row conmbinatie's. Om dit mogelijk te makken heb ik op de plekken waar een sterretje staat een meer-op-meer koppeltabel gemaakt "TabelA2TableB", "TableA2TableC", TableB2TableA", etc.
Vervolgens leek het me de manier om vervolgens alle tabellen middels LEFT JOIN aan elkaar te koppelen. Dit is natuurlijk een gigantische lange lijst, echter kom ik op deze manier problemen tegen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| LEFT JOIN `TableA2TableB` USING (`TableAID`) LEFT JOIN `TableA2TableC` USING (`TableAID`) LEFT JOIN `TableA2TableD` USING (`TableAID`) LEFT JOIN `TableA2TableE` USING (`TableAID`) LEFT JOIN `TableB2TableA` USING (`TableBID`) LEFT JOIN `TableB2TableC` USING (`TableBID`) LEFT JOIN `TableB2TableD` USING (`TableBID`) LEFT JOIN `TableB2TableE` USING (`TableBID`) LEFT JOIN `TableC2TableB` USING (`TableCID`) LEFT JOIN `TableC2TableC` USING (`TableCID`) LEFT JOIN `TableC2TableD` USING (`TableCID`) LEFT JOIN `TableC2TableE` USING (`TableCID`) |
en dan de tabellen daadwerkelijk koppelen middels
code:
1
2
3
4
5
6
7
8
9
10
11
12
| LEFT JOIN `TableA` ON (
`TableA2TableB`.`TableAID` = `TableA`.`TableAID` OR
`TableA2TableC`.`TableAID` = `TableA`.`TableAID` OR
`TableA2TableD`.`TableAID` = `TableA`.`TableAID` OR
`TableA2TableE`.`TableAID` = `TableA`.`TableAID` OR
`TableB2TableA`.`TableAID` = `TableA`.`TableAID` OR
`TableC2TableA`.`TableAID` = `TableA`.`TableAID` OR
`TableD2TableA`.`TableAID` = `TableA`.`TableAID` OR
`TableE2TableA`.`TableAID` = `TableA`.`TableAID`
) |
Ik loop tegen het probleem op dat bepaalde kolommen nog niet bestaan of dat de kolomnaam niet uniek is. Is er in (my)sql misschien een mogelijkheid dit simpeler te doen. Of kan zoiets helemaal niet?


