Bonjour,
voilà, j'ai un petit problème d'écriture d'une requête.
Voici la logique qu'elle doit suivre :
elle doit juste renvoyer des id (id_product), ce qui me bloque, c'est la sous requete.
Elle doit renvoyer des id_product qui corresponde au @word1 (ca OK)
ET qui sont compris dans le shop correspondant à la valeur de @id_shop
ET que si ce id_shop vaut autre chose que 2, renvoi une liste correspondant au code visibility (soit 'f', soit 'n'), Mais si ce code visibility est égal a '', il ne doit pas prendre en compte ce critère visibility.
Donc, si je me suis bien exprimer, voici ce qu'on doit visualiser
Si @id_shop = 2 => ne tient pas compte de @visibility (ca ca marche)
Si @id_shop = 1 ou 3 => tenir compte de @visibility si ce meme visibility est égal à 'f' ou 'n' (ca ca fonctionne) Mais ne PAS tenir compte de @visibility si celui ci est égal à '' (c'est ce cas ci qui ne fonctionne pas avec mon actuelle requête ...)
Pourriez-voous m'aider svp??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 select p.id_product, 0 from product p inner join ( select distinct id_product from search_optimize t1 where t1.search = @word1 and t1.id_shop = @id_shop and (t1.id_shop = '2' or (t1.visibility = '' OR t1.visibility = @visibility)) ) s on s.id_product = p.id_product
D'avance je vous remercie
Partager