Requête sql afficher des données
Résolu7 réponses
-
Contributeur Ambassadeur
-
ModérateurBonjour
Intéresse-toi aux jointures.
-
-
Modérateur@okbabbRegarde par exemple, comment fonctionne la jointure left join
-
Modérateur@jordane45Il te faudra aussi t'intéresser aux alias .. car tu dois faire deux fois la jointure sur ta table structures ( une pour chaque liaison avec ta table personnes )
-
@jordane45Merci, mais dsl je viens pas à comprendre le problème, vous pouvez me corriger la requête s.v.p ?
-
-
ModérateurDéjà.. il faudrait nous indiquer quel SGBD tu utilises ...
Mysql ? Access ? Oracle ? SqlServer ? PostgreSql ? Autre ??
Ensuite, je t'ai dit de te renseigner sur les jointures de type LEFT JOIN et sur les ALIAS ... l'as tu fais ??-
-
Modérateur@okbabbCompliqué ??
Pourtant, ça me semble assez simple à comprendre.. https://sql.sh/cours/jointures/left-join
Et un cours sur les jointues..et les alias : https://joaomarcuraa.medium.com/sql-joins-and-aliases-1965fd2423ca -
@jordane45Merci, j'ai lu tout ça, mais je ne trouve pas mon exemple
-
Modérateur@okbabbTu ne trouveras pas un exemple qui reprenne exactement ton besoin.. à toi de comprendre comment ça marche et l'appliquer...
Commence par une première jointure entre tes deux tables , regarde ce que ça donne...
puis ensuite, ajoutes une seconde jointure entre tes deux tables .. et voila .. le tour est joué..
En grosSELECT * FROM table1 T1 LEFT JOIN table2 T2 ON T2.xx = T1.zz LEFT JOIN table2 T3 on T3.ww = T1.yy
-
-
-
Modérateur1 - On ne poste pas des images... mais le code directement sur le forum en utilisant les balises de code !
2 - Une requête SQL ça se teste AVANT directement dans la bdd ( en utilisant phpmyadmin par exemple )
3 - Il va falloir mettre des ALIAS également dans la partie "SELECT" de ta requête pour pouvoir identifier les champs ( vu que tu as plusieurs fois les mêmes.. )
NB: Explications concernant l'utilisation des balises de code à lire entièrement avant de revenir :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
.
-
-
Avant que je met les alias, j'ai testé ce code et il m'affiche une erreur de requête
-
-
Modérateur@jordane45ça ne serait pas une question d' ID ambiguë dans le order by ??
Il faudrait le préfixer par l'alias de la table qui concerne ce champ .. T1.id par exemple.
-
-
non, j'ai enlevé l'ordre by et le problème existe encore
l'erreur est:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:\Serveur\xampp\htdocs\projet\tableau.php on line 103
et je ne sais pas comment je mettre les alias pour que les output affiche les nom des structures (lieu_travail et affectation) des colonnes ciblé-
ModérateurAh mais tu parles d'un message d'erreur PHP .... ça on s'en fou !
Déjà.. par ce que ta question concerne la construction d'une requête SQL, qu'elle est postée dans le forum Base de données .. et qu'en plus.. je t'ai dit de tester tes requêtes DIRECTEMENT dans ta bdd avant de vouloir les utiliser dans du code.
Sans oublier que ton code php est obsolète... mais ça je t'en parlerai plus tard quand tu auras enfin fait la requête pour laquelle tu nous demandé de l'aide... -
Modérateur@jordane45Pour les alias .. tu n'as visiblement toujours pas pris le temps d'aller lire les liens que je t'ai donné.
Tout y est expliqué ...
Par exempleSELECT T1.id as ID1, T2.id as ID2 ...
-
-
@jordane45la chose est très simple, mais je connais pas comment le faire, voila un autre exemple,
une table "utilisateurs" qui contient 4 colonnes: id, nom, pays_origine, pays_residence
id nom pay_origine pays_residence
1 michel 1 2
2 celine 3 4
et une autre table "pays" qui contient 2 colonnes: id_pays, nom_pays
id_pays nom_pays
1 france
2 belgique
3 espagne
4 suisse
je veux un tableau final comme ca: (output)
nom pays_origine pays_residence
michel france belgique
celine espagne suisse
quelle est la requete sql ? et merci d'avance -
Modérateur@okbabbTu as une erreur car tu n'as pas utiliser l' alias de la table dans la partie SELECT ...
T1.lieu....
Et non paspersonnes.lieu....
A moins que tu n'aies pas bien écrit le nom de la colonne ? ( mais ne connaissant pas la structure exacte de ta bdd, difficile pour moi de le deviner à distance )
-
-
Merci bien mon ami, ça marche très bien :D


