IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

[SQL Problème structure de requête] Un peu de logique plz ^^


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 39
    Points : 43
    Points
    43
    Par défaut [SQL Problème structure de requête] Un peu de logique plz ^^
    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 ...)


    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
    Pourriez-voous m'aider svp??

    D'avance je vous remercie

  2. #2
    Membre actif Avatar de TheRussian
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 200
    Points : 241
    Points
    241
    Par défaut
    Bonjour,

    ce ne serait pas un problème avec le NULL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    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 IS NULL OR t1.visibility = @visibility)) 
    ) s on s.id_product = p.id_product

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 39
    Points : 43
    Points
    43
    Par défaut
    Merci d'avoir répondu The Russian.

    Non ce n'était pas ca, mais j'ai trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select distinct id_product 
    			      from search_optimize t1
    			      where t1.search = @word1
    			      and t1.id_shop = @id_shop
    			      and 
    				(t1.id_shop = '2'
    			     		or (@visibility = '' OR t1.visibility = @visibility)
    Il suffisait de rendre la condition de gauche du second OR true par le paramètre, non pas par la colonne de ma table.

    Merci de votre collaboration, à la prochaine.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] Problème avec une requête sql
    Par bodysplash007 dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 11/05/2007, 17h30
  2. [SQL] Problème avec une requête
    Par jcmskip dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/04/2007, 11h41
  3. [SQL] Problème de " dans requête SQL
    Par cciocc dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/05/2006, 10h22
  4. [SQL] Problème PHP et requête SQL
    Par Pepito dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/05/2006, 02h41
  5. [SQL] problème avec ma requête UPDATE
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/04/2006, 11h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo