Lorsqu'on fait une requête SELECT, on voit souvent l'utilisation de « SELECT * » pour obtenir tous les champs ou encore « SELECT champ1, champ2, champ3 » pour n'obtenir que les champs spécifiés.
Ceci est encore vrai lorsque la requête comporte une jointure. Cependant, avec SELECT *, on risque d'avoir des problèmes à différents niveaux :
Dans le cas où nous avons besoin de tous les champs d'une des deux table (par exemple lorsque la seconde table est utile seulement pour le WHERE), il est possible d'utiliser une syntaxe du style « SELECT matable.* ».
Ex :
SELECT voitures.*
FROM voitures
INNER JOIN modeles
ON modele_id=modeles.id
WHERE modeles.nom='Civic';
L'utilisation de cette syntaxe sera généralement réservée aux requêtes faites lors de tests, par exemple dans phpMyAdmin. Dans un programme, on devra plutôt lister les champs désirés pour ne pas avoir plus de champs que nécessaire.
▼Publicité