J'ai 3 tables.recherche d'enregistrements avec jointure sur plusieurs tables de relations
- tour de table (en option)
- tour Tag Relation table (optional_tag_rel)
- tour de table Thème Relation (optional_theme_rel)
Une visite peut avoir plusieurs balises et des thèmes multiples. Donc, je quoi écrire et sql déclaration pour trouver des visites spécifiées. Par exemple trouver des visites où id tag = 10 et 15 et le thème id = 36 et 45.
SELECT DISTINCT (t1.id) FROM optional AS t1
LEFT JOIN optional_theme_rel as t3 ON t3.tour_id = t1.id AND (t3.theme_id =36 OR t3.theme_id =45)
LEFT JOIN optional_tag_rel as t2 ON t2.tour_id = t1.id AND (t2.tag_id = 10 OR t2.tag_id =15)
GROUP BY optional.id
Ces déclaration obtient tous les enregistrements dont le thème id = 36 ou 45, mais je dois utiliser instruction AND mais quand je l'utilise ET au lieu de OU, il ne montre aucun enregistrement. Il doit y avoir une façon différente de faire cela sur sql mais je ne sais pas grand-chose à ce sujet.
Cela fonctionne. Je cherchais cette réponse pour quelques jours. J'ai besoin d'étudier les déclarations mysql. Merci encore. – dorayaki