![]() ![]() ![]() |
|
8.4.4 Utiliser plus d'une table
La table
Avec ces indications, la requête de
mysql> CREATE TABLE event (nom VARCHAR(20), date DATE,
-> type VARCHAR(15), remark VARCHAR(255));
Comme pour la table Chargez les informations comme ceci : mysql> LOAD DATA LOCAL INFILE "event.txt" INTO TABLE event;
Etant donné ce que vous avez appris avec les requêtes sur la table
Supposons que vous voulez avoir l'age des animaux lorsqu'ils ont eu leur portée. La table
mysql> SELECT animaux.nom, (TO_DAYS(date) - TO_DAYS(naissance))/365 AS age, remarque
-> FROM animaux, event
-> WHERE animaux.nom = event.nom AND type = "portée";
+--------+------+-------------------------------+
| nom | age | remarque |
+--------+------+-------------------------------+
| Fluffy | 2.27 | 4 chatons, 3 femelles, 1 male |
| Buffy | 4.12 | 5 chiots, 2 femelles, 3 male |
| Buffy | 5.10 | 3 chiots, 3 femelles |
+--------+------+-------------------------------+
Il faut remarquer plusieurs choses à propos de cette requête :
Les regroupements sont aussi possibles sur une même table. Cela revient à comparer des valeurs d'une table avec d'autres valeurs de la même table. Par exemple, pour marier vos animaux entre eux, vous pouvez faire un regroupement de la table
mysql> SELECT p1.nom, p1.genre, p2.nom, p2.genre, p1.espece
-> FROM animaux AS p1, animaux AS p2
-> WHERE p1.espece = p2.espece AND p1.genre = "f" AND p2.genre = "m";
+--------+-------+--------+-------+---------+
| nom | genre | nom | genre | espece |
+--------+-------+--------+-------+---------+
| Fluffy | f | Claws | m | chat |
| Buffy | f | Fang | m | chien |
| Buffy | f | Bowser | m | chien |
+--------+-------+--------+-------+---------+
Dans cette requête, plusieurs alias sont définis pour pouvoir faire référence à chaque instance de la table, et à la bonne colonne. | |