CrazyCow | Aide avec une requête SQL |
1 #1 |
---|---|---|
Je poste trop
Inscrit: 29/07/2008 00:26
Post(s): 18991
Karma: 29871 |
Base : MySQL 5.7 InnoDB
Je bloque sur un problème qui me parait pourtant assez basique, mais je tourne en rond... Voici la situation (exemple) : Table 1 : objet
Table 2 : meta
Table 2 : meta_data
* Clé primaire Donc comme on peut le voir, des objets ont certaines propriétés (meta). Certains meta peuvent ne pas être complétés. Il ne peut y avoir qu'une valeur par meta et par objet (un objet ne peut pas être jaune et bleu à la fois). Mon but est de faire un formulaire de filtrage/recherche qui permette de retourner les objets selon les propriétés définies. Résultat attendu : - Si on sélectionne Joli > Objet 1 - Si on sélectionne Joli et Jaune > Objet 1 - Si on sélectionne Laid et Jaune > Rien Depuis mon formulaire je me retrouve avec un tableau de fk_id_meta et de leur valeur souhaitée (data_value). La requête est donc à construire avec les deux tables objet et meta_data je suppose. J'aimerais que soient retournés tous les champs des objets (id et titre en l'occurrence). Je ne sais pas si je dois utiliser des =, des GROUP BY, LEFT JOIN... je suis perdu Si quelqu'un me trouve la requête SQL correspondante je lui fais un gros poutou !
Contribution le : 05/09/2019 15:07
|
|
_________________
K TROPHY “ À un moment donné, il faut lâcher prise. Claude François |
||
Signaler |
-Flo- | 2 #2 |
|
---|---|---|
Je poste trop
Inscrit: 08/01/2005 13:41
Post(s): 15190
Karma: 12562 |
@CrazyCow Tu as plusieurs manières d'y parvenir, mais celle que je trouve la plus simple est de faire une jointure sur ta table meta_data pour chaque critère. Donc 2 jointures dans le cas de 2 critères.
Exemple : Citation :
Contribution le : 05/09/2019 15:31
|
|
_________________
|
||
Signaler |
CrazyCow | 0 #3 |
|
---|---|---|
Je poste trop
Inscrit: 29/07/2008 00:26
Post(s): 18991
Karma: 29871 |
@-Flo- Ah oui ! C'est top. Jamais j'aurais pensé à cette solution !
J'ai juste ajouté dans le WHERE une condition supplémentaire pour que l'id_meta corresponde, pour éviter que l'objet soit retourné en cas de valeur identique dans un autre meta. Merci beaucoup ! Voilà le poutou amplement mérité :
Contribution le : 05/09/2019 16:10
|
|
_________________
K TROPHY “ À un moment donné, il faut lâcher prise. Claude François |
||
Signaler |
-Flo- | 1 #4 |
|
---|---|---|
Je poste trop
Inscrit: 08/01/2005 13:41
Post(s): 15190
Karma: 12562 |
@CrazyCow Cool ! J'y appose ma fesse gauche.
Contribution le : 05/09/2019 16:14
|
|
_________________
|
||
Signaler |
GrossePatate | 0 #5 |
|
---|---|---|
Je suis accro
Inscrit: 14/02/2017 14:50
Post(s): 959
Karma: 989 |
+1 @-Flo-
C'est propre !
Contribution le : 07/09/2019 17:14
|
|
Signaler |