J'ai une requête qui ressemble à ceci:filtre conditionnel pour MySQL requête
select a.title, is.filename
from articles a
join article_images ai on ai.article_id = a.article_id
join images i on i.image_id = ai.image_id
join image_sizes is on is.image_id = i.image_id
where is.size_name = '96x96';
Donc il y a une N: N relation entre les articles et les images, et une N: 1 relation entre les images et les tailles d'image . Ceci sélectionne l'image 96x96 pour chaque article.
Maintenant, je veux changer cela afin qu'il sélectionne l'image 96x96, sauf le article_id
est 42, auquel cas il sélectionne une taille différente. Existe-t-il un moyen de le faire dans une requête?
Cela fonctionnera certainement, mais il vaut la peine de noter que l'utilisation de UNION comme suggéré dans d'autres réponses devrait être légèrement plus rapide dans MySQL. OU peut empêcher les index utilisés. – Simon
Merci, cela fonctionne très bien. La réponse 'UNION' est également bonne, mais je suis plus intéressé par la lisibilité que par l'efficacité dans ce cas, et cela me semble plus logique. – friedo