A voir également:
- Aide pour tables SQL
- Sql lister les tables ✓ - Forum Programmation
- Blob sql ✓ - Forum Webmastering
- Sql (+) - Forum Programmation
- Sql commence par ✓ - Forum Webmastering
- Copier une table sql ✓ - Forum Programmation
5 réponses
Bonjour !
Merci pour vos réponses si rapide.
J'ai testé les deux requêtes et j'obtiens les résultats qu'il faut !
+------+---------+------------+---------+----------------+
| SITE | ID_PARC | NOM_PARC | ID_SITE | NOM_SITE |
+------+---------+------------+---------+----------------+
| 1 | 1 | parcelle1 | 1 | Beaufond |
| 1 | 2 | parcelle2 | 1 | Beaufond |
| 1 | 3 | parcelle3 | 1 | Beaufond |
| 2 | 4 | parcelle4 | 2 | La Bretagne |
| 2 | 5 | parcelle5 | 2 | La Bretagne |
| 2 | 6 | parcelle6 | 2 | La Bretagne |
| 3 | 7 | parcelle7 | 3 | Les Colimacons |
| 3 | 8 | parcelle8 | 3 | Les Colimacons |
| 3 | 9 | parcelle9 | 3 | Les Colimacons |
| 4 | 10 | parcelle10 | 4 | La Mare |
| 4 | 11 | parcelle11 | 4 | La Mare |
| 4 | 12 | parcelle12 | 4 | La Mare |
| 5 | 13 | parcelle13 | 5 | Le Plate |
| 5 | 14 | parcelle14 | 5 | Le Plate |
| 5 | 15 | parcelle15 | 5 | Le Plate |
+------+---------+------------+---------+----------------+
15 rows in set (0.00 sec)
Pourriez-vous m'expliquer la requête que vous m'avez donné comparé à celle que j'avais (select * from PARCELLE join SITE on PARCELLE.SITE;) ?
Autre chose, est-il possible de sélectionner par exemple :
+------+---------+------------+---------+----------------+
| SITE | ID_PARC | NOM_PARC | ID_SITE | NOM_SITE |
+------+---------+------------+---------+----------------+
| 1 | 1 | parcelle1 | 1 | Beaufond |
| 1 | 2 | parcelle2 | 1 | Beaufond |
| 2 | 6 | parcelle6 | 2 | La Bretagne |
| 5 | 14 | parcelle14 | 5 | Le Plate |
| 5 | 15 | parcelle15 | 5 | Le Plate |
+------+---------+------------+---------+----------------+
Merci pour votre aide !
cordialement
Merci pour vos réponses si rapide.
J'ai testé les deux requêtes et j'obtiens les résultats qu'il faut !
+------+---------+------------+---------+----------------+
| SITE | ID_PARC | NOM_PARC | ID_SITE | NOM_SITE |
+------+---------+------------+---------+----------------+
| 1 | 1 | parcelle1 | 1 | Beaufond |
| 1 | 2 | parcelle2 | 1 | Beaufond |
| 1 | 3 | parcelle3 | 1 | Beaufond |
| 2 | 4 | parcelle4 | 2 | La Bretagne |
| 2 | 5 | parcelle5 | 2 | La Bretagne |
| 2 | 6 | parcelle6 | 2 | La Bretagne |
| 3 | 7 | parcelle7 | 3 | Les Colimacons |
| 3 | 8 | parcelle8 | 3 | Les Colimacons |
| 3 | 9 | parcelle9 | 3 | Les Colimacons |
| 4 | 10 | parcelle10 | 4 | La Mare |
| 4 | 11 | parcelle11 | 4 | La Mare |
| 4 | 12 | parcelle12 | 4 | La Mare |
| 5 | 13 | parcelle13 | 5 | Le Plate |
| 5 | 14 | parcelle14 | 5 | Le Plate |
| 5 | 15 | parcelle15 | 5 | Le Plate |
+------+---------+------------+---------+----------------+
15 rows in set (0.00 sec)
Pourriez-vous m'expliquer la requête que vous m'avez donné comparé à celle que j'avais (select * from PARCELLE join SITE on PARCELLE.SITE;) ?
Autre chose, est-il possible de sélectionner par exemple :
+------+---------+------------+---------+----------------+
| SITE | ID_PARC | NOM_PARC | ID_SITE | NOM_SITE |
+------+---------+------------+---------+----------------+
| 1 | 1 | parcelle1 | 1 | Beaufond |
| 1 | 2 | parcelle2 | 1 | Beaufond |
| 2 | 6 | parcelle6 | 2 | La Bretagne |
| 5 | 14 | parcelle14 | 5 | Le Plate |
| 5 | 15 | parcelle15 | 5 | Le Plate |
+------+---------+------------+---------+----------------+
Merci pour votre aide !
cordialement
Leviathan49
Messages postés
257
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
22 juillet 2011
70
7 juil. 2011 à 10:15
7 juil. 2011 à 10:15
Les requêtes du dessus sont des jointures internes (http://www.siteduzero.com/tutoriel-3-214617-introduction-aux-jointures-sql.html#ss_part_3).
Pour ce qui est de ta requête (select * from PARCELLE join SITE on PARCELLE.SITE;) elle correspond... à rien :). Elle te renvoie donc le produit scalaire des 2 tables.
Pour ta derniere question :
+------+---------+------------+---------+----------------+
| SITE | ID_PARC | NOM_PARC | ID_SITE | NOM_SITE |
+------+---------+------------+---------+----------------+
| 1 | 1 | parcelle1 | 1 | Beaufond |
| 1 | 2 | parcelle2 | 1 | Beaufond |
| 2 | 6 | parcelle6 | 2 | La Bretagne |
| 5 | 14 | parcelle14 | 5 | Le Plate |
| 5 | 15 | parcelle15 | 5 | Le Plate |
+------+---------+------------+---------+----------------+
Essaye de mettre ca sous la forme d'une question plutôt, du genre "Tout les parc dont le nom contient b" ou autre, parce que j'ai pas la patience d'essayer de chercher la logique derrière ta table...
Pour ce qui est de ta requête (select * from PARCELLE join SITE on PARCELLE.SITE;) elle correspond... à rien :). Elle te renvoie donc le produit scalaire des 2 tables.
Pour ta derniere question :
+------+---------+------------+---------+----------------+
| SITE | ID_PARC | NOM_PARC | ID_SITE | NOM_SITE |
+------+---------+------------+---------+----------------+
| 1 | 1 | parcelle1 | 1 | Beaufond |
| 1 | 2 | parcelle2 | 1 | Beaufond |
| 2 | 6 | parcelle6 | 2 | La Bretagne |
| 5 | 14 | parcelle14 | 5 | Le Plate |
| 5 | 15 | parcelle15 | 5 | Le Plate |
+------+---------+------------+---------+----------------+
Essaye de mettre ca sous la forme d'une question plutôt, du genre "Tout les parc dont le nom contient b" ou autre, parce que j'ai pas la patience d'essayer de chercher la logique derrière ta table...
Re-bonjour
Comme te l'as dit Leviathan49, ta requête fait le produit scalaire de 2 tables.
C'est la même chose que si tu fait :
le résultat contient (taille table1) X (taille table 2)
Alors que si tu fait
ou l'autre requête avec JOIN que je t'ai donnée, on demande d'afficher toutes les colonnes des 2 tables uniquement pour les lignes dont l'id du site de la table PARCELLE est égal à l'ID du site de la table site, ce qui fait donc un filtrage du résultat pour ne prendre que ce qui est cohérent.
C'est assez clair ?
Cordialement
Comme te l'as dit Leviathan49, ta requête fait le produit scalaire de 2 tables.
C'est la même chose que si tu fait :
Select * FROM PARCELLE, SITE
le résultat contient (taille table1) X (taille table 2)
Alors que si tu fait
SELECT * FROM PARCELLE, SITE WHERE PARCELLE.SITE = SITE.ID_SITE
ou l'autre requête avec JOIN que je t'ai donnée, on demande d'afficher toutes les colonnes des 2 tables uniquement pour les lignes dont l'id du site de la table PARCELLE est égal à l'ID du site de la table site, ce qui fait donc un filtrage du résultat pour ne prendre que ce qui est cohérent.
C'est assez clair ?
Cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
6 juil. 2011 à 23:41
Cordialement