Identieke tabellen joinen
lange tijd geleden ondertussen :)
Zoals iedereen heb ik een probleem, ik probeer het even uit te leggen. Van alle atleten in onze sportclub heb ik de prestaties van afgelopen jaar in een database gestoken. Ook de prestaties van vorig jaar steken in dezelfde database, maar wel in een andere tabel...
Nu ik zou graag een overzicht maken van alle prestaties, dus ook deze van vorig jaar... Ik probeerde onderstaande code, maar dan krijg ik 2x de tabelrij 'Resultaat' te zien (wat niet de bedoeling is natuurlijk)..
Ik maak eerst nog een selectie uit mijn atletendatabase (atleten), via de Lifenr/Atleet_id JOIN ik de resultatentabbel van dit jaar (resultaten_2013) en van vorig jaar (resultaten_2012)
SELECT `atleten`.`Voornaam` , `atleten`.`Achternaam` , 'Kogel',
`resultaten_2013`.`Resultaat` ,
`resultaten_2012`.`Resultaat`
FROM `atleten`
// Joinen resultaten 2013
RIGHT JOIN `resultaten_2013` ON `atleten`.Lifenr = `resultaten_2013`.`Atleet_id`
// Joinen resultaten 2012
RIGHT JOIN `resultaten_2012` ON `atleten`.Lifenr = `resultaten_2012`.`Atleet_id`
Op google en aanverwanten vondt ik geen oplossing, weten jullie iets?
Alvast bedankt!
Heb je straks 10 tabellen (en moet je elk jaar de query aanpassen).
Query aanpassen is niet veel werk, dus met plezier :-)
Moet je eenmalig je tabel aanpassen en de query waarmee de gegevens worden weggeschreven in de tabel.
Stap inderdaad af van tabellen per jaar. Dat geeft alleen maar problemen. Bedenk bijvoorbeeld eens hoe je gaat zoeken in een variabel aantal tabellen?
Code (php)
1
2
2
INSERT INTO resultaten_2012 (voornaam, achternaam, resultaat)
SELECT voornaam, achternaam, resultaat FROM resultaten_2013
SELECT voornaam, achternaam, resultaat FROM resultaten_2013
Om helemaal netjes te zijn:
Btw, je weet wat de RIGHT JOIN doet?
Die selecteert wel alle resultaten maar niet alle atleten, ik denk dat je hier een left join bedoelt.