2 Chat
Felis silvestris
Bestiole à quatre pattes qui saute très haut et grimpe aux arbres
3 Tortue d'Hermann Testudo hermanni
Bestiole avec une carapace très dure
4 Perroquet amazone Alipiopsitta xanthops Joli oiseau parleur vert et jaune
Chaque résultat n’apparaît qu'une seule fois. Pour la simple et bonne raison que lorsque vous faites UNION, les doublons sont
effacés. En fait, UNION est équivalent à UNION DISTINCT. Si vous voulez conserver les doublons, vous devez utiliser
UNION ALL.
Code : SQL
SELECT * FROM Espece
UNION ALL
SELECT * FROM Espece;
id
nom_courant
nom_latin
description
1 Chien
Canis canis
Bestiole à quatre pattes qui aime les caresses et tire souvent la langue
2 Chat
Felis silvestris
Bestiole à quatre pattes qui saute très haut et grimpe aux arbres
3 Tortue d'Hermann Testudo hermanni
Bestiole avec une carapace très dure
4 Perroquet amazone Alipiopsitta xanthops Joli oiseau parleur vert et jaune
1 Chien
Canis canis
Bestiole à quatre pattes qui aime les caresses et tire souvent la langue
2 Chat
Felis silvestris
Bestiole à quatre pattes qui saute très haut et grimpe aux arbres
3 Tortue d'Hermann Testudo hermanni
Bestiole avec une carapace très dure
4 Perroquet amazone Alipiopsitta xanthops Joli oiseau parleur vert et jaune
Il n'est pas possible de mélanger UNION DISTINCT et UNION ALL dans une même requête. Si vous utilisez les
deux, les UNION ALL seront considérés comme des UNION DISTINCT.
LIMIT et ORDER BY
LIMIT
Il est possible de restreindre les résultats avec LIMIT au niveau de la requête entière, ou au niveau des différentes requêtes
unies. L'important est que ce soit clair. Par exemple, vous unissez deux requêtes et vous voulez limiter les résultats de la première.
La requête suivante est parfaite pour ça :
Code : SQL
SELECT id, nom, 'Race' AS table_origine FROM Race LIMIT 3
UNION
SELECT id, nom_latin, 'Espèce' AS table_origine FROM Espece;
Vous avez bien trois noms de races, suivis de toutes les espèces.
id
nom
table_origine
1 Berger allemand
Race
2 Berger blanc suisse
Race
3 Boxer
Race
Partie 2 : Index, jointures et sous-requêtes
132/414
www.openclassrooms.com
Felis silvestris
Bestiole à quatre pattes qui saute très haut et grimpe aux arbres
3 Tortue d'Hermann Testudo hermanni
Bestiole avec une carapace très dure
4 Perroquet amazone Alipiopsitta xanthops Joli oiseau parleur vert et jaune
Chaque résultat n’apparaît qu'une seule fois. Pour la simple et bonne raison que lorsque vous faites UNION, les doublons sont
effacés. En fait, UNION est équivalent à UNION DISTINCT. Si vous voulez conserver les doublons, vous devez utiliser
UNION ALL.
Code : SQL
SELECT * FROM Espece
UNION ALL
SELECT * FROM Espece;
id
nom_courant
nom_latin
description
1 Chien
Canis canis
Bestiole à quatre pattes qui aime les caresses et tire souvent la langue
2 Chat
Felis silvestris
Bestiole à quatre pattes qui saute très haut et grimpe aux arbres
3 Tortue d'Hermann Testudo hermanni
Bestiole avec une carapace très dure
4 Perroquet amazone Alipiopsitta xanthops Joli oiseau parleur vert et jaune
1 Chien
Canis canis
Bestiole à quatre pattes qui aime les caresses et tire souvent la langue
2 Chat
Felis silvestris
Bestiole à quatre pattes qui saute très haut et grimpe aux arbres
3 Tortue d'Hermann Testudo hermanni
Bestiole avec une carapace très dure
4 Perroquet amazone Alipiopsitta xanthops Joli oiseau parleur vert et jaune
Il n'est pas possible de mélanger UNION DISTINCT et UNION ALL dans une même requête. Si vous utilisez les
deux, les UNION ALL seront considérés comme des UNION DISTINCT.
LIMIT et ORDER BY
LIMIT
Il est possible de restreindre les résultats avec LIMIT au niveau de la requête entière, ou au niveau des différentes requêtes
unies. L'important est que ce soit clair. Par exemple, vous unissez deux requêtes et vous voulez limiter les résultats de la première.
La requête suivante est parfaite pour ça :
Code : SQL
SELECT id, nom, 'Race' AS table_origine FROM Race LIMIT 3
UNION
SELECT id, nom_latin, 'Espèce' AS table_origine FROM Espece;
Vous avez bien trois noms de races, suivis de toutes les espèces.
id
nom
table_origine
1 Berger allemand
Race
2 Berger blanc suisse
Race
3 Boxer
Race
Partie 2 : Index, jointures et sous-requêtes
132/414
www.openclassrooms.com
