Deux tables

Résolu/Fermé
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 - Modifié le 19 févr. 2022 à 10:57
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 - 19 févr. 2022 à 17:54
Bonjour,

Je débute dans mysql et j'aimerais afficher deux table l'une a côté de l'autre, mais quand j'execute ma commande cela me cumule mon tableau 1 avec le nombre de ligne du tableau 2...
Alors il n'ont pas le même nombre de colonnes mais il ont le même nombre de lignes... alors je comprend pas pourquoi sa cumule plutôt que d'afficher simplement les tableau l'un a coté de l'autre

SELECT * FROM table1, table2;


Configuration: Windows / Chrome 98.0.4758.102

20 réponses

jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225
19 févr. 2022 à 11:53
"Afficher le nom de chaque apprenant avec son département de résidence." c'est donc une jointure, pas 2 listes distinctes du contenu de chaque table.

Et cela signifie qu'il faut dans la table membre, avoir à minima (nom,dpt) et dans departement (dpt,intitule). Et on est alors bien dans le cas d'une jointure entre les 2 tables sur le critère dpt
1
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
19 févr. 2022 à 13:59
C'est good !!!!

j'avais du mal a comprendre qu'en fait vu que sa calcule forcément sa ajoute toutes les valeurs multiplié !!!
Merci pour ta patience et ton apprentissage
1
jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225
Modifié le 19 févr. 2022 à 11:06
Bonjour,

C'est le principe, une référence croisée : nb lignes T1 X nb lignes T2. Mais généralement on associe une restriction
WHERE T1.idx = T2.idx
car ce type de requête, une jointure, est destinée à rapprocher des tables ayant un rapport entre elles.

Ce n'est pas fait pour ce que toi tu veux faire. Pas en SQL pur. Après dans un outil de requetage qui s’intéresse à la mise en forme, un logiciel de BI ...

0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
19 févr. 2022 à 11:23
Hmm d'accord et si par exemple je voulais afficher simplement deux colonnes l'une a coté de l'autre :
col1 et col2 mais que col2 se trouve dans un autre tableau est ce que cela est possible ?
0
jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225
19 févr. 2022 à 11:27
tableau ?? table ?

avec un peu d'expérience on pourrait avec des artifices le faire. Mais commence par approfondir les jointures cela te sera plus profitable
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
Modifié le 19 févr. 2022 à 11:34
En fait je suis en formation et sa fait partie de mon exercice je devais créer deux table :
une table avec un champ et une autre table avec deux champ puis afficher les enregistrement de chaque table...
je me suis informé sur les jointures mais j'ai l'impression qu'aucune ne correspond...
0
jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225
19 févr. 2022 à 11:35
et tu es sur que dans l’exercice on te dit d'afficher cote cote 2 tables sans rapport entre elles ?
1
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
19 févr. 2022 à 11:45
"Créer deux nouvelles tables, une qui contient l’ensemble des membres de l’ACS, l’autre qui
contient les départements avec numéros et noms écrits. Afficher le nom de chaque apprenant
avec son département de résidence."
Voila la consignes, alors j'ai créer les table une avec un champ qui comporte les membres et une autre table qui comporte deux champ, l'un avec les numéros du département et l'autre avec les départements de résidence
0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
19 févr. 2022 à 11:49
après j'aurais pu faire table2 avec simplement un champ qui comporte a la fois les numéros et les noms des départements, peux être que le problème vient de la.. du coup je suis en train de voir pour inserer un champ d'une autre table (table2) temporairement dans ma table (table1) mais je pensse que c'est impossible ..
0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
Modifié le 19 févr. 2022 à 11:59
D'accord, donc je ne doit pas créer un seul champ dans la table1 membres mais bien deux champ avec (pour le deuxieme champ) un nom identique que dans la table2 pour prévoir l'arrivé du champ de la table2 c'est sa ?
0
jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225
19 févr. 2022 à 12:09
Une jointure c'est regrouper des informations de différentes tables sur des critères.

Là on veut obtenir "Dupont Morbihan". Avec dans la table membre (Dupont, 56) et dans departement (56,Morbihan).

La requête va effectuer une jointure entre les 2 tables sur le n° de département. Il n'est pas obligatoire que les champs aient le même nom. Cela peut arriver membre.dpt=departement.dpt mais dans la table membre, le champ pourrait s'appeler adresse_dpt on aurait alors une jointure sur membre.adresse_dpt = departement.dpt
0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
19 févr. 2022 à 12:20
Ha donc si je comprend bien il faut avoir un champ dans table1 avec des enregistrements identiques que le champ dans table2 ?
0
jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225
Modifié le 19 févr. 2022 à 12:26
Plus exactement, un champ dans table1 qui contient une valeur présente dans un champ de table2. Et généralement le champ dans table2 sera la clé primaire de la table.

Ce champ sert à faire le lien entre les informations des 2 tables. Avec on va pouvoir trouver les départements de résidence des membres, ou par exemple tous les membres habitant le Morbihan.
0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
19 févr. 2022 à 12:27
Hmmm donc par exemple si je rajoute un champ id dans table1 et table2 je pourrais caller ma jointure sur id
0
jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225
Modifié le 19 févr. 2022 à 12:37
si tu rajoutes un champ id dans table1, ce ne sera pas la même notion que l'id de la table2.

puisque dans table1 ce serait par exemple le n° de membre, alors que l'id dans département serait le N° du département. C'est bien pourquoi j'ai précisé que la jointure peut s'effectuer sur des noms différents.

table1 (id,nom, adresse_dpt) table2 (id, intitule) ==> WHERE table1.adresse_dpt = table2.id

et il sera plus aisé pour l'utilisation d'avoir des noms de champs plus significatifs qu'id

comme id_membre, id_dpt, membre_id, dpt_id, ou num_membre, num_dpt
0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
19 févr. 2022 à 13:03
Je pense que je suis pas loin j'essaie de le faire avec LEFT JOIN mais sa me met pas les enregistrements sa me met NULL..
0
jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225
Modifié le 19 févr. 2022 à 13:12
maintenant j'ai l'impression que tes tables contiennent trop de champs

quelles sont les descriptions de chaque table ? et il serait préférable de les appeler membre et departement
0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
19 févr. 2022 à 13:14
J'ai rajouter des champs normalement il y as :
table1 -> champ "membreacs"
table2 -> champ "numero" , "departement"
et dasn la table1 j'ai rajouter deux champ "numero" , "departement"
pour que sa corresponde avec table2
0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
Modifié le 19 févr. 2022 à 13:17
voila ce que sa donne sans les champs que j'ai rajouter

je pensse qu'il faut que je precise que c'est des TEXT ou VARCHAR ou INT
0
jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225
19 févr. 2022 à 13:22
Repars sur des bases simples :

membre (id_mbr,nom, id_dpt)
departement (id_dpt, intitule)
0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
19 févr. 2022 à 13:27
okay je fait sa
0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
19 févr. 2022 à 13:36
c'est bon
0
jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225
19 févr. 2022 à 13:47
la table departement ne doit contenir qu'une seule occurence de chaque département , c'est la jointure qui donne à chaque membre son intitulé departement

et quid du select avec join
1
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
19 févr. 2022 à 13:51
d'accord pour le département, et le select avec JOIN c'est vrai que je l'utilisais mal donc sa marchait pas alors j'ai tenté autre chose, mais je vais l'utilisé maintenant que j'ai des table neuves
0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
Modifié le 19 févr. 2022 à 14:09
par contre sa m'affiche deux fois le id_departement donc il faudrait plutôt que j'utilise maintenant ce que tu m'as conseiller
0
jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225
19 févr. 2022 à 14:15
ou un select avec les champs nommés, select table1.nom, table2.id_dpt, table2.intitule

maintenant supprime l"enregistrement 99 de departement et affiche quand même tous les membres
0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
19 févr. 2022 à 14:32
le select avec le nom des champ sa fonctionne pas sa multiplie tout, en revanch j'ai pas compris ta dernière consigne de supprimer l'enregistrement 99 ?
0
jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225
19 févr. 2022 à 14:55
fais voir ta reequete, le select avec les champs nommés doit fonctionner

tu supprimes l'enregistrement dpt 99, tu lances ta requête, les membres concernés ne devrais plus être affichés, comment quand même les afficher ?
0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
Modifié le 19 févr. 2022 à 15:04
ma requete :
SELECT table1.nom, table2.id_dpt, table2.intitule FROM table1, table2;

je ne sais pas ... si je supprime l'enregistrement je ne pourrais plus les voirs...
0
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
19 févr. 2022 à 15:14
bonjour,
qu'as-tu appris dans ta formation?
tu as uniquement des exercices, ou aussi de la matière?
0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6 > yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024
19 févr. 2022 à 16:04
non aucune matière ont est sencé apprendre seule c'est le but donc deja la ce que je fait c'est de la triche un peu ^^
0
jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225
19 févr. 2022 à 15:59
tu as trouvé comment utiliser join et tu repars sur ta syntaxe de départ défaillante !
0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6 > jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024
19 févr. 2022 à 16:05
c'est a dire ?
0
jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225 > anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022
19 févr. 2022 à 16:06
0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
19 févr. 2022 à 16:08
Du coup voila ou j'en suis :

sachant que dans ma table2 (departement) il n'y a que 4 departement (ceux qui sont different)
est ce que c'est bon ?
pour moi je trouve que sa marche
0
jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225
Modifié le 19 févr. 2022 à 16:17
effectivement c'est ce à quoi il faut arriver.

supprime le département 99 de table2 et relance ta requete
0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6 > jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024
19 févr. 2022 à 16:23
par contre le hik c'est que dans mon table1 j'ai une colonnes id_dpt avec les chiffres des departement ce qui n'est pas préciser dans la consigne... mais sinon appart avec des id je ne voit pas comment les faires correspondre..
0
jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225 > anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022
19 févr. 2022 à 16:24
si tu n'indiques pas on département pour un membre, pas de solution pour une jointure, donc aucun rapprochement possible
1
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6 > jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024
19 févr. 2022 à 16:42
DU coup c'est bon je les ait relié grace a des id :

je trouve que c'est plus propre !
Merci en tout cas, problème résolu sa fait du bien ^^
0
jee pee Messages postés 39583 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 18 avril 2024 9 225 > anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022
19 févr. 2022 à 16:50
c'est une solution incongrue d'inventer une clé supplémentaire quand il existe une clé naturelle le code département.
0