Requete SQL Multi tables en PHP [Résolu]

Signaler
Messages postés
6
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
29 mars 2006
-
Messages postés
6
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
29 mars 2006
-
Bonjour,
je tente de faire fonctionner une requete multi table et je trouve pas d'exemples.
voici la requete en question :
SELECT four_nom, count( lign_code )
FROM produit, fournisseur, ligne_de_commande
WHERE four_code = prod_four_code
AND lign_prod_code = prod_code
AND lign_etat = 'EAC'
GROUP BY four_nom

Nous avons donc 3 tables avec un lien de Ligne de commande vers produit et de produit vers fournisseur.

Le but etant de sortir en affichage une liste des Noms de fournisseur présent dans la table ligne de commande avec le nombre de ligne le concernant dans cette table donc l'etat est en attente commande (lign_etat='EAC')

Merci par avance a tous.

6 réponses

Messages postés
6
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
29 mars 2006

Bon ben ma premiere requete fonctionne, le pb venait d'une autre requete dans le script qui elle ne pouvait pas marcher car incomplete mais avec le meme message d'erreur pour les deux...oups
Désolé pour le dérangement et merci a tous.

Le chemin est long jusque la connaissance...oui tres long LOL
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Hello,

il nous faudrait la structure de tes 3 tables, ce serait plus simple.
Messages postés
6
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
29 mars 2006

Ok alors voila
Ligne_de_commande
`LIGN_CODE` int(11) NOT NULL auto_increment,
`LIGN_COM_CODE` int(11) default NULL,
`LIGN_PROD_CODE` int(11) default NULL,
`LIGN_QUAN` bigint(4) default NULL,
`LIGN_ETAT` char(32) default NULL,
`LIGN_STAT` char(4) default NULL,
`LIGN_UTIL_CODE` char(32) default NULL,
`LIGN_HC_LIB` char(32) default NULL,
`LIGN_HC_REF` char(32) default NULL,
`LIGN_HC_FOUR` char(32) default NULL,
`LIGN_HC_PRIX` decimal(10,2) default NULL,
PRIMARY KEY (`LIGN_CODE`),
KEY `I_FK_LIGNE_DE_COMMANDE_COMMANDE` (`LIGN_COM_CODE`),
KEY `I_FK_LIGNE_DE_COMMANDE_PRODUIT` (`LIGN_PROD_CODE`)

Produit
`PROD_CODE` int(11) NOT NULL auto_increment,
`PROD_FAMI_CODE` char(32) NOT NULL default '',
`PROD_FOUR_CODE` char(32) NOT NULL default '',
`PROD_REF` char(100) NOT NULL default '',
`PROD_LIB` char(32) NOT NULL default '',
`PROD_MARQ` char(32) default NULL,
`PROD_COND` char(32) default NULL,
`PROD_PUHT` decimal(10,2) default NULL,
`PROD_INDIV` tinyint(1) default NULL,
PRIMARY KEY (`PROD_CODE`),
KEY `I_FK_PRODUIT_FAMILLE_DE_PRODUIT` (`PROD_FAMI_CODE`),
KEY `I_FK_PRODUIT_FOURNISSEUR` (`PROD_FOUR_CODE`)

Fournisseur
`FOUR_CODE` char(32) NOT NULL default '',
`FOUR_NOM` char(100) NOT NULL default '',
`FOUR_ADR1` char(100) NOT NULL default '',
`FOUR_ADR2` char(100) NOT NULL default '',
`FOUR_CP` char(10) NOT NULL default '',
`FOUR_VILLE` char(100) NOT NULL default '',
`FOUR_FOM` tinyint(1) NOT NULL default '0',
`FOUR_TEL` char(32) default NULL,
`FOUR_FAX` char(32) default NULL,
`FOUR_MAIL` char(50) default NULL,
PRIMARY KEY (`FOUR_CODE`)

En fait voila le fonctionneùent de la chose :
des users crées des lignes de commandes en attente de commande
puis une coordinatrice vient faire la creation de bons de commandes en regroupant toutes ses lignes de commande par fournisseur (et la intervient ma requete multitable...)
Merci par avance d'autant plus que la suite du projet va necessiter plusieurs fois l'usage de SQL multitable...
Messages postés
149
Date d'inscription
lundi 7 février 2005
Statut
Membre
Dernière intervention
6 février 2009

salut, met des IN a la place des et fais en requete imbriqué car le bloque quand il y a plusieurs occurences.
La synthaxe du IN est :

SELECT four_nom, count( lign_code )
FROM produit
WHERE prod_four_code IN(
SELECT four_code
FROM fournisseur)
AND tes autres jointures

voila bonne chance
Messages postés
6
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
29 mars 2006

oui sauf que dans produit je n'ai pas four_nom donc cela ne marche pas...
qqun pour une autre idée.

Le message obtenu est :
Champ 'four_nom' inconnu dans order clause
Messages postés
149
Date d'inscription
lundi 7 février 2005
Statut
Membre
Dernière intervention
6 février 2009

non mais la je t'ai pas mis toute la requête voyons, c'est à toi de développer un peu.
tu rajoutes fournisseur dans ton from et tu fais tes autres jointures, ca devrait marcher normalement. Fainéant va lol