Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2848 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [mysql] Problème de jointure [résolu merci antho1983]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[mysql] Problème de jointure [résolu merci antho1983]

n°1363114
mc_cut_kil​ler
Posté le 10-05-2006 à 11:24:38  profilanswer
 

Bonjour à tous :)
 
Je fait appel à votre aide car je bloque sur une requête avec jointure.
Je suis vraiment pas très fort lorsqu'il s'agit d'effectuer des jointures, voici les deux tables :
 
+-----------------+         +-------------------+
+commandes_detail+         +commandes_action +
+-----------------+         +-------------------+    
    detail_id                             action_id
    no_cde                               no_cde
    no_ligne                              no_ligne
    code_article                         no_bl  
    qte_article                           qte_livre    
    lib_article                             no_lot  
        ...                                     ...
 
J'utilise les variable $no_cde et $no_bl pour répérer les enregistrements.
Je voudrais récupérer dans commandes_detail le code_article, lib_article et dans commandes_action no_ligne, qte_livre, no_lot.
 
Merci d'avance pour votre aide  :jap:


Message édité par mc_cut_killer le 10-05-2006 à 11:46:06
mood
Publicité
Posté le 10-05-2006 à 11:24:38  profilanswer
 

n°1363122
antho1983
Posté le 10-05-2006 à 11:30:54  profilanswer
 

select code_article, lib_article, commandes_actions.no_ligne, qte_livre from commandes_details, commandes_actions where commandes_detail.no_cde=commandes_action.no_cde;
 

n°1363135
mc_cut_kil​ler
Posté le 10-05-2006 à 11:35:35  profilanswer
 

Merci je teste de suite :)
 
Par contre il me semblait qu'il fallait mettre JOIN la table à un moment ...

n°1363142
antho1983
Posté le 10-05-2006 à 11:38:48  profilanswer
 

alors çà marche?

n°1363143
mc_cut_kil​ler
Posté le 10-05-2006 à 11:38:59  profilanswer
 

OK ca marche :) :) :)
 
Merci beaucoup pour ton aide, en fait j'étais dans la mauvaise voie en essayant de placer ce JOIN :(
 
@+

n°1363152
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-05-2006 à 11:50:43  profilanswer
 

non tu étais sur la bonne voie en essaye de placer join

Code :
  1. select code_article, lib_article, commandes_actions.no_ligne, qte_livre from commandes_details inner join commandes_actions on  commandes_detail.no_cde=commandes_action.no_cde


Et si tu veux également les commandes details qui n'ont pas d'actions ( dans la requete d'antho ou celle au dessus elles ne remontent pas), tu changes le "inner" en "left outer"

n°1363306
mc_cut_kil​ler
Posté le 10-05-2006 à 14:15:59  profilanswer
 

Ok je vais essayer ta requête anapajari, car je trouve cette façon plus propre :)
 
Mais merci qd même à antho1983 car je savais pas qu'il était possible de procèder ainsi...


Message édité par mc_cut_killer le 10-05-2006 à 14:18:02
n°1363335
mc_cut_kil​ler
Posté le 10-05-2006 à 14:28:41  profilanswer
 

Je confirme que les deux type de requêtes marchent nikel.
 
Par contre à chaque fois j'ai la ligne qui s'affiche en double, j'suis entrain de chercher pourquoi car j'ai qu'un bl pour l'instant ...

n°1363388
antho1983
Posté le 10-05-2006 à 15:04:29  profilanswer
 

utilise distinct dans ton select.
T'as une cle primaire dans tes tables?

n°1363395
mc_cut_kil​ler
Posté le 10-05-2006 à 15:08:33  profilanswer
 

Oui j'ai mis action_id en auto_incrémente pour la clé primaire.
Du temps que j'y suis à chaque fois que je sais pas quoi mettre en clé primaire je met truc_id.  
Ca fait quoi de ne pas mettre de clé primaire ?, j'ai vu que certains le faisait.
 
J'essaye de mettre distinct ...
 
[Edit] Et re-merci ca fonctionne nickel, je vais voir à quoi correspond exactement ce distinct car je ne l'avais jamais utilisé ...


Message édité par mc_cut_killer le 10-05-2006 à 15:11:09
mood
Publicité
Posté le 10-05-2006 à 15:08:33  profilanswer
 

n°1363401
antho1983
Posté le 10-05-2006 à 15:12:33  profilanswer
 

la clé primaire empêche d'avoir des doublons dans la table!!
 
exemple: table contient année mois
si t'as pas de clé primaire tu peut avoir 2006 3
                                                         2006 3
                                                          2005 3
alors que si tu met (annee mois) en cle primaire tu ne peut avoir que  
2006 3
2005 3

n°1363405
mc_cut_kil​ler
Posté le 10-05-2006 à 15:14:14  profilanswer
 

Ok donc j'ai bien fait de mettre des clé primaires en auto-incrémente pour les tables ou je ne savais pas quoi mettre.
 
En tout cas encore merci pour ton aide et @bientôt :)


Message édité par mc_cut_killer le 10-05-2006 à 15:14:30
n°1363411
antho1983
Posté le 10-05-2006 à 15:17:47  profilanswer
 

nan pas sur car si je met une cle primaire en auto_incrémente dans la table annee mois je pourrait avoir 1  2006  3
                                2  2006  3
                                3  2006  3
Attention au clé auto incrémente!!!! (assez dangereux sur les grosses tables

n°1363420
mc_cut_kil​ler
Posté le 10-05-2006 à 15:24:18  profilanswer
 

Effectivement c'est vrai, par exemple pour ma table produits les produits pouvaient avoir le même code mais pas le même indice.
code_produit ne pouvait pas marché en clé primaire, donc j'ai mis produit_id puis lorsque je crée un produit je vérifie que le nom n'existe pas déjà dans la bd.
 
En progressant je me suis dit que je pouvais aussi mettre code_produit-indice en clé primaire ... enfin merci pour tes précisions :):):)

n°1363425
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-05-2006 à 15:27:08  profilanswer
 

antho1983 a écrit :

nan pas sur car si je met une cle primaire en auto_incrémente dans la table annee mois je pourrait avoir 1  2006  3
                                2  2006  3
                                3  2006  3
Attention au clé auto incrémente!!!! (assez dangereux sur les grosses tables


Je serais très interessé que tu developpes le coté dangereux d'une clé primaire, auto-incrémentée sur des "grosses tables"... Pour ma culture hein!!!

n°1363429
antho1983
Posté le 10-05-2006 à 15:29:48  profilanswer
 

C'est juste une question de place. çà sert a koi d'avoir plusieurs fois les memes lignes dans la table avec juste une clé auto incrémentée différente? A utiliser un distinct dans les requetes?

n°1363434
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-05-2006 à 15:31:38  profilanswer
 

antho1983 a écrit :

C'est juste une question de place. çà sert a koi d'avoir plusieurs fois les memes lignes dans la table avec juste une clé auto incrémentée différente? A utiliser un distinct dans les requetes?


 :love:  :love:  :love:

n°1363444
antho1983
Posté le 10-05-2006 à 15:36:58  profilanswer
 

si çà t'amuse je voulais juste l'aider a comprendre

n°1363464
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-05-2006 à 15:57:40  profilanswer
 

nan mais c'est juste n'importe quoi ce que tu dis, ça m'amuse pas plus que ça [:spamafote]

n°1363468
antho1983
Posté le 10-05-2006 à 15:59:39  profilanswer
 

pkoi n'importe koi? Toi qui connais tout dis moi alors a koi çà sert d'avoir plusieurs ligne identique avec juste la clé auto-incrémentée qui change?

n°1363479
mc_cut_kil​ler
Posté le 10-05-2006 à 16:05:31  profilanswer
 

Question con, pour une table produit si tu met le code_produit en clé primaire tu peut avoir plein de doublons aussi.
Ex: produit_1, Produit_1, pRoduit_1 ?

n°1363488
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-05-2006 à 16:08:19  profilanswer
 

ok! Soit une table Commande ( id, idProduit, Quantité) et une table Facture (id, idCommande, idClient)
J'ai mon client Paul ( idClient=1) qui achète 30 oranges ( idProduit=1) et mon client Pierre (idClient=2) qui achète 30 oranges ( idProduit=1).
Dans ma table commande j'ai

id idProduit Quantité
1  1         30
2  1         30


Dans ma table facture j'ai

id idCommande idClient
1  1            1
1  2            2


J'ai un doublon dans ma table commande, distingué par ma clé primaire id ( en auto-incrémente) pourtant cela ne concerne pas la même commande et ce n'est pas un doublon [:spamafote]
 
edit: balises fixed qui merdouillaient


Message édité par anapajari le 10-05-2006 à 16:16:14
n°1363503
antho1983
Posté le 10-05-2006 à 16:13:04  profilanswer
 

ben oui mais çà dépend de ce que tu veut faire c tout. (a quoi çà sert l'analyse sinon)

n°1363520
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-05-2006 à 16:19:16  profilanswer
 

C'est pas moi qui ai lancé le postulat suivant:

antho1983 a écrit :

Attention au clé auto incrémente!!!! (assez dangereux sur les grosses tables


ça encore une fois, c'est juste "n'importe quoi" [:spamafote]

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [mysql] Problème de jointure [résolu merci antho1983]

 

Sujets relatifs
problème changement de page a cause d'un comboboxenorme probleme excel
problème cache javascriptproblème de chiffres significatifs
Problème javascriptprobleme d'alignement
[Résolu] [VB]problème avec envoi de mail sous VBDeplacement de certaine ligne du table (mysql)
[RESOLU] merci FlorentG [MYSQL] INSERT INTO ne veut plus de ' 
Plus de sujets relatifs à : [mysql] Problème de jointure [résolu merci antho1983]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR