Problème de jointure [résolu merci antho1983] [mysql] - SQL/NoSQL - Programmation
Marsh Posté le 10-05-2006 à 11:30:54
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;
Marsh Posté le 10-05-2006 à 11:35:35
Merci je teste de suite
Par contre il me semblait qu'il fallait mettre JOIN la table à un moment ...
Marsh Posté le 10-05-2006 à 11:38:59
OK ca marche
Merci beaucoup pour ton aide, en fait j'étais dans la mauvaise voie en essayant de placer ce JOIN
@+
Marsh Posté le 10-05-2006 à 11:50:43
non tu étais sur la bonne voie en essaye de placer join
Code :
|
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"
Marsh Posté le 10-05-2006 à 14:15:59
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...
Marsh Posté le 10-05-2006 à 14:28:41
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 ...
Marsh Posté le 10-05-2006 à 15:04:29
utilise distinct dans ton select.
T'as une cle primaire dans tes tables?
Marsh Posté le 10-05-2006 à 15:08:33
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é ...
Marsh Posté le 10-05-2006 à 15:12:33
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
Marsh Posté le 10-05-2006 à 15:14:14
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
Marsh Posté le 10-05-2006 à 15:17:47
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
Marsh Posté le 10-05-2006 à 15:24:18
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
Marsh Posté le 10-05-2006 à 15:27:08
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 |
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!!!
Marsh Posté le 10-05-2006 à 15:29:48
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?
Marsh Posté le 10-05-2006 à 15:31:38
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? |
Marsh Posté le 10-05-2006 à 15:57:40
nan mais c'est juste n'importe quoi ce que tu dis, ça m'amuse pas plus que ça
Marsh Posté le 10-05-2006 à 15:59:39
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?
Marsh Posté le 10-05-2006 à 16:05:31
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 ?
Marsh Posté le 10-05-2006 à 16:08:19
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é |
Dans ma table facture j'ai
id idCommande idClient |
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
edit: balises fixed qui merdouillaient
Marsh Posté le 10-05-2006 à 16:13:04
ben oui mais çà dépend de ce que tu veut faire c tout. (a quoi çà sert l'analyse sinon)
Marsh Posté le 10-05-2006 à 16:19:16
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"
Marsh Posté le 10-05-2006 à 11:24:38
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
Message édité par mc_cut_killer le 10-05-2006 à 11:46:06