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
 
Date d'inscription: février 2010
Messages: 1
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 :
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
Vieux 08/02/2010, 12h50   #2
Modérateur
 
Avatar de CinePhil
 
Nom : Philippe Leménager
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 46
Messages: 4 808
Envoyer un message via MSN à CinePhil
Par défaut

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.
Futur ingénieur CNAM, ingénieur d'étude à l'École Nationale de Formation Agronomique.

« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ».
(Nicolas Boileau)
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
NEWS MYSQLF.A.Q MYSQLSOURCES MYSQLTUTORIELS MYSQLOUTILS MYSQLLIVRES MYSQL

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Bases de données > MySQL



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



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


Vos questions techniques : forum d'entraide MySQL - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.