A voir également:
- Recherche en sql
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Recherche adresse - Guide
- Recherche musique - Guide
- Recherche par image - Guide
- Recherche privée - Guide
1 réponse
Salut,
Tu as à ta disposition 2 méthodes
* la plus employée fait appel à une sous-requête mais introduit une mauvaise habitude : la sous-requête car bien que pratique, elle est souvent grosse consommatrice dans des constructions légèrement plus compliquées
* la plus efficace fait appel à 2 exemplaires de la même table : un pour explorer la liste et l'autre pour citer la référence
1. en utilisant une sous-requête
la requete principale est select nom from eleve where age = age_d_Alice
la requête pour avoir l'âge d'Alice est select age from eleves where nom = 'Alice'
Donc en remplaçant le critère dans dans la requête principale par la sous-requête on a select nom from eleve where age = (select age from eleves where nom = 'Alice')
Comme tu peux le voir, c'est simple rapide et pratique. Son seul défaut est que la sous-requête est (en théorie) exécutée à chaque ligne de la requête principale
2. Avec deux exemplaires de la même table
nous allons prendre les même requêtes que précédemment, mais nous n'allons pas créer une sous-requête (maintenant que nous savons qu'elle est potentiellement dangereuse), nous allons nous contenter de juxtaposer les requêtes l'une en face de l'autre. Comme les 2 requêtes sont basées sur la même table, il va quand même falloir préciser ici et là de quelle table on parle : des élèves utilisés dans la première requête ou de ceux utilisés dans la seconde. Nous utiliserons donc e1 pour la première table & e2 pour la seconde :
select e1.nom
from eleve e1, eleve e2
where e1.age = e2.age
and e2.nom = 'Alice'
ça te va ?
Tu as à ta disposition 2 méthodes
* la plus employée fait appel à une sous-requête mais introduit une mauvaise habitude : la sous-requête car bien que pratique, elle est souvent grosse consommatrice dans des constructions légèrement plus compliquées
* la plus efficace fait appel à 2 exemplaires de la même table : un pour explorer la liste et l'autre pour citer la référence
1. en utilisant une sous-requête
la requete principale est select nom from eleve where age = age_d_Alice
la requête pour avoir l'âge d'Alice est select age from eleves where nom = 'Alice'
Donc en remplaçant le critère dans dans la requête principale par la sous-requête on a select nom from eleve where age = (select age from eleves where nom = 'Alice')
Comme tu peux le voir, c'est simple rapide et pratique. Son seul défaut est que la sous-requête est (en théorie) exécutée à chaque ligne de la requête principale
2. Avec deux exemplaires de la même table
nous allons prendre les même requêtes que précédemment, mais nous n'allons pas créer une sous-requête (maintenant que nous savons qu'elle est potentiellement dangereuse), nous allons nous contenter de juxtaposer les requêtes l'une en face de l'autre. Comme les 2 requêtes sont basées sur la même table, il va quand même falloir préciser ici et là de quelle table on parle : des élèves utilisés dans la première requête ou de ceux utilisés dans la seconde. Nous utiliserons donc e1 pour la première table & e2 pour la seconde :
select e1.nom
from eleve e1, eleve e2
where e1.age = e2.age
and e2.nom = 'Alice'
ça te va ?