Page 1 sur 2
Problème de requête
Posté : 12 mai 2006, 10:33
par Cécile85
Bonjour,
Voila j'ai un problème de requete. J'ai fait :
Code : Tout sélectionner
SELECT responsable.num_pers, nom_pers, prenom_pers, nom_mag
FROM responsable, magasin, represente, represente2, lieux
WHERE
(responsable.num_pers = represente.num_pers
AND represente.matricule_mag = magasin.matricule_mag)
OR
(responsable.num_pers = represente2.num_pers
AND represente2.matricule_lieux = lieux.matricule_lieux
AND lieux.matricule_mag= magasin.matricule_mag)
AND
(
(nom_pers LIKE 'dupond%')
OR
(nom_mag LIKE 'dupond%')
)
ORDER BY nom_pers ASC
je pense que mon problème vien de mon from, en effet ensuite dans le where vu que je fais des OR, je n'utilise pas toute les tables
Je sais pas trop comment vous l'expliquer, j'espère que vous comprenez mon problème. Cela ne m'affiche pas d'erreur, mais j'ai pas de résultat pour autant.
En faite je pense qu'il faudrai faire une sorte de OR aussi pour le from genre :
FROM responsable, magasin, (represente or (represente2, lieux))
vous voyer ou je veux en venir ?
merci d'avance
Re: Problème de requête
Posté : 12 mai 2006, 10:57
par ouckileou
vous voyer ou je veux en venir ?
Non pas vraiment...
Il faudrait déjà savoir un peu ce que tu veux faire
Je trouve ça un peu bizarre ces jointures dans des conditions, je suis pas sûr que ce soit possible, et je serais surtout curieux de voir à quoi c'est censé correspondre
Posté : 12 mai 2006, 11:00
par Cyrano
Je peux me tromper, mais à mon avis, il manque une paire de parenthèses, essaye ceci:
Code : Tout sélectionner
SELECT responsable.num_pers, nom_pers, prenom_pers, nom_mag
FROM responsable, magasin, represente, represente2, lieux
WHERE(
(responsable.num_pers = represente.num_pers
AND represente.matricule_mag = magasin.matricule_mag)
OR(responsable.num_pers = represente2.num_pers
AND represente2.matricule_lieux = lieux.matricule_lieux
AND lieux.matricule_mag= magasin.matricule_mag)
)
AND(nom_pers LIKE 'dupond%'
OR nom_mag LIKE 'dupond%')
ORDER BY nom_pers ASC
Note : le SQL, ce n'est pas du PHP, j'ai déplacé le sujet.
Posté : 12 mai 2006, 11:03
par ouckileou
Ah oui c'est vraiment possible
Mais je trouve ça compliqué...
Posté : 12 mai 2006, 11:05
par Cécile85
Merci pour avoir deplacé le sujet, j'ai remarqué que je m'étais trompé juste après l'avoir posté.
J'ai testé la requete, ça me fait toujours la même chose, donc rien, ni erreur, ni affichage d'enregistrement.
Posté : 12 mai 2006, 11:08
par Cyrano
Il faudrait avoir la structure des tables et un petit jeu d'essai avec en plus un exemple de ce que tu voudrais obtenir pour faire des tests...

Posté : 12 mai 2006, 11:14
par Cécile85
en faite j'ai cinq tables qui sont relier de cette facon
responsable represente (identifiant de responsable et magasin), magasin
responsable, represente2 (identifiant de responsable et lieux), lieux(identifiant de magasin), magasin
magasin c'est par exemple auchan donc le/les responsable(s) c'est le directeur... de tout les auchan
lieux c'est auchan à limoges donc le/les responsable(s) c'est le responsable, commercial seulement de limoges.
Et moi je voudrai par exemple quand on donne le nom d'un magasin que l'on ai tout les responsables de tout les lieux et du magasin correspondant.
ou sin l'on donne le nom que l'on ai tout les magasin ou se responsable porte se nom.
j'espère mettre mieux fait comprendre
merci
Posté : 12 mai 2006, 11:20
par Cécile85
Structure de la table magasin
MATRICULE_MAG
CODE_VILLE
NOM_MAG
ADRUE_MAG
TEL_MAG
FAX_MAG
EMAIL_MAG
DATE_OUVERTURE
SITE
COMMENTAIRE
Structure de la table lieux
MATRICULE_LIEUX
MATRICULE_MAG
CODE_VILLE
AD_RUE_LIEUX
CONSO_COMPRISE
SITE
COMMENTAIRE
FACILITE_DACCES
Structure de la table represente
NUM_PERS
MATRICULE_MAG
CATEGORIE
Structure de la table represente2
NUM_PERS
MATRICULE_LIEUX
CATEGORIE
Structure de la table responsable
NUM_PERS
CODE_VILLE
FAX_DR
NOM_PERS
PRENOM_PERS
TELFIX_PERS
TELPOR_PERS
EMAIL_PERS
AD_RUE
SUPPL_AD
Posté : 12 mai 2006, 11:42
par Cyrano
Bon attends, on fait du développement, on va essayer de faire ça proprement si tu veux bien : quand je parle de structure, je souhaite un truc lisible avec des informations utilisable sans trop devoir commencer par passer une heure à comprendre ce qui correspond à quoi.
Exemple de ce que j'espérais:
Code : Tout sélectionner
Structure
+---------------------------------+
| represente |
+---------------+-----------+-----+
| NUM_PERS |INT(11) |FK,PK|
| MATRICULE_MAG |INT(11) |FK,PK|
| CATEGORIE |VARCHAR(64)| |
+---------------+-----------+-----+
Jeu d'essai
+--------------------------------------+
| represente |
+----------+---------------+-----------+
| NUM_PERS | MATRICULE_MAG | CATEGORIE |
+----------+---------------+-----------+
| 1| 12| Auchan |
| 1| 14| Auchan |
| 2| 18| Auchan |
| 3| 18| Auchan |
| 3| 11| Auchan |
+----------+---------------+-----------+
Avec le bloc-note et une police de caractère du genre
courier, tu peux préparer tes schémas pour les coller ici ensuite. Après ça, tu indiques la liste des données que tu voudrais extraire par rapport au jeu d'essai indiqué et on aura pas de difficultés à te montrer le chemin.
Posté : 12 mai 2006, 14:18
par Cécile85
Code : Tout sélectionner
+---------------------------------+
| represente |
+---------------+-----------+-----+
| NUM_PERS |bigint(4) |FK,PK|
| MATRICULE_MAG |char(4) |FK,PK|
| CATEGORIE |char(32) | |
+---------------+-----------+-----+
Jeu d'essai
+--------------------------------------+
| represente |
+----------+---------------+-----------+
| NUM_PERS | MATRICULE_MAG | CATEGORIE |
+----------+---------------+-----------+
| 1| 1| Directeur |
| 3| 2| Commercial|
+----------+---------------+-----------+
+---------------------------------+
| represente2 |
+---------------+-----------+-----+
| NUM_PERS |bigint(4) |FK,PK|
|MATRICULE_LIEUX|char(6) |FK,PK|
| CATEGORIE |char(32) | |
+---------------+-----------+-----+
Jeu d'essai
+--------------------------------------+
| represente2 |
+----------+---------------+-----------+
| NUM_PERS |MATRICULE_LIEUX| CATEGORIE |
+----------+---------------+-----------+
| 1| 2| Comptable |
| 3| 3| Directeur |
+----------+---------------+-----------+
+---------------------------------+
| responsable |
+---------------+-----------+-----+
| NUM_PERS |bigint(4) | PK|
| NOM_PERS |char(32) | |
| PRENOM_PERS |char(32) | |
+---------------+-----------+-----+
Jeu d'essai
+--------------------------------------+
| responsable |
+----------+---------------+-----------+
| NUM_PERS | Nom_pers |prenom_pers|
+----------+---------------+-----------+
| 1| Dupond | Pierre |
| 2| Dupont | Paul |
| 3| Faure | Jacques |
| 4| Moreau | François |
+----------+---------------+-----------+
+---------------------------------+
| lieux |
+---------------+-----------+-----+
|matricule_lieux|bigint(6) |PK |
|matricule_mag |char(4) |FK |
| adresse |char(75) | |
+---------------+-----------+-----+
Jeu d'essai
+---------------------------------------------+
| lieux |
+-----------------+---------------+-----------+
| matricule_lieux | matricule_mag |adresse |
+-----------------+---------------+-----------+
| 1| 1 | Poitier |
| 2| 1 | Limoges |
| 3| 2 | Nantes |
| 4| 3 | Poitiers |
| 5| 3 | Paris |
+-----------------+---------------+-----------+
+---------------------------------+
| magasin |
+---------------+-----------+-----+
|nom_mag |bigint(32) | |
|matricule_mag |char(4) |PK |
| adresse |char(75) | |
+---------------+-----------+-----+
Jeu d'essai
+---------------------------------------------+
| magasin |
+-----------------+---------------+-----------+
| matricule_mag | nom_mag |adresse |
+-----------------+---------------+-----------+
| 1| Auchan | paris |
| 2| carrefour| paris |
| 3| casino | lille |
| 4| cora | nante |
+-----------------+---------------+-----------+
si je tape dupond
ça doi m'afficher
1----Dupond----Pierre----Auchan
De même que si je tape Auchan
Posté : 12 mai 2006, 14:54
par Cyrano
Ok, faut que je fasse des tests, je reviens dès que j'obtiens le résultat voulu

Posté : 12 mai 2006, 14:59
par ouckileou
Question bête :
ce ne serait pas plus simple de préciser le type de recherche qu'on souhaite faire (sur un nom, sur un magasin) et de construire la requête en fonction ?
Posté : 12 mai 2006, 15:07
par Cécile85
ce n'est pas le problème, ouckileou pour ça il suffit de
Code : Tout sélectionner
AND
(
(nom_pers LIKE 'dupond%')
OR
(nom_mag LIKE 'dupond%')
)
ORDER BY nom_pers ASC
le problème est que l'on ne sait pas si la personne est responsable d'un magasin ou d'un lieu.[/code]
Posté : 12 mai 2006, 15:13
par ouckileou
OK désolé je me retire alors ce sujet est trop tordu pour moi

Posté : 12 mai 2006, 15:25
par Cécile85
on me le dit tout le temps que je suis tordu
