Bonjour à tous,
Voici un problème que je soumets à votre expertise, car moi, je sèche...
Je souhaite créer une requête qui me sorte un tableau récapitulatif.... à partir de quelques tables. Je détaille ici de manière très simplifiée mais dans le but d'aller à l'essentiel :
Table offre
id ==> clé primaire
titre ==> recherche plombier h/f
contenu ==> 'lorem ipsum....'
Table variable_d_offre
id ==> clé primaire
offre_id ==> 1
modele_id ==> 5
valeur_de_la_variable ==> 50 € /h
Table modèle_de_variable_d_offre
id ==> clé primaire par exemple 5
type ==> salaire
J'ai donc 3 tables. Le principe étant qu'une offre d'emploi contient un titre et un contenu et qu'elle peut être complétée par différents types d'informations comme le salaire, la durée de contrat, une adresse mail de contact. Une offre d'emploi peut avoir 0 ou n variable_d_offre ; chaque variable d'offre étant caractérisée par un type.
Quand je fais un
je me retrouve alors avec autant de ligne par offre qu'il y a de variable d'offre. Si l'offre a été complétée par un salaire et un mail, j'obtiens alors :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT * FROM offre INNER JOIN variable_d_offre ON offre.id = variable_d_offre.offre_id
id, titre, valeur_de_la_variable
offre X titre 50€/h
offre X titre courrier@gmail.com
offre Y titre Brest
offre Z titre 30 € /h
offre Z titre mail
offre Z titre lieu
....
Mais alors, est-il possible d'avoir directement les valeurs complémentaires en colonne d'après leur type ?
C'est à dire d'avoir ceci :
id, titre, type = salaire, type = mail, type = lieu
offre X, titre, 50 €, courrier@gmail.com, NULL
offre Y, titre, NULL, NULL, Brest
offre Z, titre, 30 € /h, mail@mail.com, Nevers
Faut-il passer par des sous requêtes ? Y a-t-il une possibilité d'arriver à obtenir ce résultat ?
Merci pour vos indices et lumières.
Squarou
Partager