Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 08/02/2010, 12h28   #1
Invité de passage
 
Inscription : février 2010
Messages : 1
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 1
Points : 0
Points : 0
Par défaut Requête sur 2 tables ayant une structure différente

Bonjour,

Je suis un peu coincé, j'essaie de réaliser une requête de sélection sur 2 tables montées différemment.

Je m'explique:

La première est classique, les champs de critères sont "en ligne".
La seconde est une table associative de 2 autres (dont la précédente citée).

Ces deux tables ont bien sûr en commun un id unique.

Le but est d'obtenir la liste des enregistrements répondant aux critères "en ligne" de la première mais aussi aux critères associées "en colonne" de la seconde.

J'arrive à restreindre la seconde table aux id uniques lorsque les critères sont multiples mais pas moyen de rassembler ça avec la requête listant la première table.

Comme ce n'est pas peut-être pas très clair, je met une requête brute de ce que j'essaie d'obtenir (elle ne peut pas marcher, j'en suis conscient) :

"
Code :
1
2
3
4
5
6
7
8
SELECT * FROM annonces,annonces_type,annonces_localisation,annonces_options 
WHERE annonces.ann_mode = 'vente' 
AND annonces.ann_enligne = '1' 
AND annonces.ann_id = annonces_type.ann_id 
AND annonces.ann_id = annonces_localisation.ann_id 
AND annonces.ann_id = annonces_options.ann_id 
AND annonces_options.opt_id = '9' 
AND annonces_options.opt_id = '14
'"

La partie "annonces_options.opt_id = 'x'" étant variable en nombre de critère, c'est là tout mon soucis pour obtenir une sélection.

J'ai cherché du côté des jointures, mais je n'ai pas trouvé mon bonheur (ou j'ai pas bien appliquer le truc ...).

Merci d'avance si quelqu'un a ne serait qu'un début de piste sur comment procéder.

Dernière modification par CinePhil ; 08/02/2010 à 12h46. Motif: Balises codes
Scryll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2010, 12h50   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur développement logiciels
Inscription : août 2006
Messages : 10 045
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 045
Points : 16 340
Points : 16 340
Envoyer un message via MSN à CinePhil
On pourrait avoir la structure des tables ?

J'ai du mal à comprendre ton besoin.
Que veux-tu dire par :
Citation:
les champs de critères sont "en ligne".
...
répondant aux critères "en ligne" de la première mais aussi aux critères associées "en colonne" de la seconde.
Que cherches-tu à obtenir ?

Pour ce qui est des jointures, tu en as fait 3 dans ta requête mais avec la syntaxe obsolète depuis 1992.
Pour apprendre à bien utiliser les jointures, c'est par .
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 05h16.


 
 
 
 
Partenaires

Hébergement Web