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 :select et AND


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 84
    Points : 70
    Points
    70
    Par défaut [Résolu]SQL :select et AND
    Encore un problème.....
    imaginez : une table nommée "livre_motClefs" contenant deux colonnes :
    'num" et "mot" avec les données :
    3001 --- mot1
    3001 --- mot2
    128 --- mot2

    Je souhaiterais pouvoir afficher dans mon dbgrid (grace à un select) les numéros des livres qui ont les mots-clefs "mot1" et "mot2"
    c'est à dire avoir " 3001 ".

    Quand j'écris : Select num from livre_motClefs where ( mot="mot1" and mot="mot2" ), ça ne marche pas..... en y réflechissant ça me paraît normal, mais je ne vois pas comment faire. :

    Merci de m'aider
    A+

  2. #2
    Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Avril 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Avril 2003
    Messages : 70
    Points : 50
    Points
    50
    Par défaut
    comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select num from livre_motClefs where  mot in ("mot1" ,"mot2" )

  3. #3
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Ce que vous avez écrit revient à chercher les livres pour lesquels le champ MOT vaut à la fois 'mot1' et 'mot2', ce qui paraît difficile.
    Il faut donc que vous remplaciez AND par OR.

    Ou que vous utilisiez la solution d'Isildur, selon vos préférences.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  4. #4
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 84
    Points : 70
    Points
    70
    Par défaut
    merci de vos réponses.... mais ce que vous me proposiez correspondait à un "ou". Or moi j'ai besoin d'un "et".
    Finalement j'ai trouvé :
    Select num from livre_motclefs
    where (mot='mot1' and mot in (
    select num from livre_motClefs
    where mot='mot2')
    )

    C'est un peu lourd, mais au moins ça marche !
    Ciao et merci encore du temps que vous passez à répondre

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Shabata
    merci de vos réponses.... mais ce que vous me proposiez correspondait à un "ou". Or moi j'ai besoin d'un "et".
    Finalement j'ai trouvé :
    Select num from livre_motclefs
    where (mot='mot1' and mot in (
    select num from livre_motClefs
    where mot='mot2')
    )

    C'est un peu lourd, mais au moins ça marche !
    Ciao et merci encore du temps que vous passez à répondre
    C pas possible q ça marche, car tu fais un "mot in" sur un select qui te sortira des num. Par contre, avec "num in" à la place, ça devrait marcher

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 67
    Points : 79
    Points
    79
    Par défaut
    Il me semble que la solution du IN suggere par Isildur n'est pas bonne.
    On ramene tout les enregistrement ayant soit mot1 soit mot2 et non mot1 et mot2 a la fois...

    une autre alternative :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT S1.N
    FROM (select num as N from livre_motClefs where mot = 'mot1') S1,
             (select num as N from livre_motClefs where mot = 'mot2') S2
    WHERE S1.N = S2.N
    Java, JDBC, SQL, Oracle

    Specialiste Kamehameha des blagues-boulets

    Barman de la taverne

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

Discussions similaires

  1. [SQL] select champ 5-ème caractère = "D"
    Par mlequim dans le forum Langage SQL
    Réponses: 5
    Dernier message: 05/09/2005, 17h15
  2. [SQL] SELECT + EXCEPT
    Par Mike@Nestor dans le forum Langage SQL
    Réponses: 18
    Dernier message: 23/08/2005, 16h07
  3. [SQL] select en JAVA
    Par webbulls dans le forum JDBC
    Réponses: 2
    Dernier message: 09/06/2005, 14h08
  4. [SQL] selection des dates en ne distinguant pas l'heure
    Par meufeu dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/06/2005, 11h29
  5. [SQL] select syntaxe
    Par Leila75 dans le forum Oracle
    Réponses: 3
    Dernier message: 10/05/2005, 11h05

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