Bonjour à tous,
Je reprend un peu le SQL et m'entraine durant les heures creuses =)
Je me suis amusé à créer quelques petites tables pokémon mais je bloque encore sur les jointures.
2 tables : une avec les pokemon et la deuxième avec des catégories (les types) (feu, etc)
Dans mes relation, je pars sur du 1,n car chaque pokémon peut avoir un ou plusieur type comme un type peut être associé à un ou plusieurs pokemon.
voici donc mes 3 tables (la 3ème étant donc la combinaison des clefs primaire des deux premières)
Jusque là tout vas bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 -- create CREATE TABLE pokemon( idPkmn int NOT NULL AUTO_INCREMENT, name VARCHAR(50), level INTEGER, PRIMARY KEY(idPkmn) ); CREATE TABLE categorie( idCategorie int NOT NULL AUTO_INCREMENT, name VARCHAR(50), PRIMARY KEY(idCategorie) ); CREATE TABLE asso( id int NOT NULL AUTO_INCREMENT, idPkmn int, idCategorie int, PRIMARY KEY(id), FOREIGN KEY(idPkmn) REFERENCES pokemon(idPkmn), FOREIGN KEY(idCategorie) REFERENCES categorie(idCategorie) ); INSERT INTO pokemon (name,level) VALUES ('salameche',25), ('pikachu',99), ('tignon',50), ('dracaufeu',99), ('chenipan',25), ('taupiqueur',75) ; INSERT INTO categorie(name) VALUES ('feu'), ('elec'), ('insect'), ('sol'), ('combat'), ('vol') ; INSERT INTO asso(idPkmn, idCategorie) VALUES (1,1),(2,2),(3,5),(4,1),(4,6),(5,3),(6,4);
J'aurai besoin de votre avis quant à la meilleure manière d'appeler les pokémons avec les catégories feu et les pokémon avec la catégorie insect.
j'ai tenté un début avec :
Merci =)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM pokemon INNER JOIN asso ON pokemon.idPkmn=asso.idPkmn INNER JOIN categorie ON pokemon.idPkmn=categorie.idCategorie;
Partager