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

Oracle Discussion :

Like + jointure => marche pas


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 155
    Par défaut Like + jointure => marche pas
    Bonjour, j'ai un problème avec une requete toute bête mais je comprends pas pourquoi ça marche pas.

    Quand je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from rep_mots_cles where upper(mots) like '%ARCHI%';
    J'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    MOTS                          NUMERO
    ----------------------   ----------
    Architecture                 5
     
    Architecture militaire      6
     
    Architecture religieuse    7
     
    Archives                      8
    Donc ça c'est normal

    si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select * from rep_mots_cles, any_mots
    where ENSEMBLE=NUMERO;
    j'obtiens la jointure donc c'est normal. (et il y a bien des mots avec archi dedans)

    Par contre si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select * from rep_mots_cles, any_mots
    where ENSEMBLE=NUMERO 
    and upper(mots) like '%ARCHI%';
    alors le resultset est vide. Je comprends vraiment pas pourquoi le fait de mettre un and entre les 2 conditions me renvoie aucun résultats alors que chacun renvoie des résultats.

    Si quelqu'un connait le pb...

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Il ne faudrait pas que tu fasses une jointure droite / gauche plutôt ?
    D'après ce que tu décris, aucune ligne de rep_mots_cles qui satisfait cette condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    upper(mots) like '%ARCHI%'
    n'a de ligne connexe dans any_mots

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 155
    Par défaut
    Merci pour ta réponse.

    En fait je vois pas du tout comment faire ça. Je suis avec oracle 7.4 et j'essaie de faire un left outer join mais il me met 'ORA-00933: SQL command not properly ended' sur le outer.
    En gros il a pas l'air de connaitre ce mot. Comment je peux faire?
    En gros voilà ce que je veux ecrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select * 
    from rep_mots_cles left outer join any_mots
    on ENSEMBLE=NUMERO
    where upper(mots) like '%ARCHI%';

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Les mots clés que tu veux utiliser n'existent qu'à partir de la version 9i ou ultérieur.

    L'équivalent (en 8i) réside dans le symbole (+)
    Une recherche avancée te montrera comme l'utiliser (ce n'est pas si compliqué)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 155
    Par défaut
    en fait je trouve rien expliquant correctement comment utiliser cette façon de l'écrire. J'ai essayé de l'utiliser sur ma requête mais le resultat est toujours vide.
    Il est fortement possible que la requête ne soit pas correcte. Donc si tu as des liens vers de la doc pour les jointures externes avec cette écriture je veux bien. Sinon si tu vois une solution pour ma requête je suis prenneur.

    Merci

  6. #6
    Membre éclairé

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Par défaut
    Il faudrait être plus précis :
    1) tu as pas de ligne car les lignes de la tables rep_mots_cles correspondant à '%ARCHI%' n'ont pas de lien avec la table any_mots

    tu peux le vérifer avec la requêtes suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select *from any_mots where ENSEMBLE in(5,6,7,8)
    Ensuite si tu veux le résultat suivant :
    Selection des mots clés avec ARCHI + toutes les coorespondances de l'ensemble avec la tables any_mots tu as bon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select a.* 
    from rep_mots_cles r, any_mots a
    on a.ENSEMBLE=r.NUMERO
    where upper(r.mots) like '%ARCHI%';
    Dis nous exactement ce que tu souhaites, le libéllé en francais et des extraits des tables, et le résultats voulu on pourra t'aider avec plaisir !
    Si tu es cool monte nous un exemple que nous pouvons exécuter sur nos base
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    create table ....
    insert into ....
    select ...
    Voilà nous t'attendons

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

Discussions similaires

  1. Requete avec jointure qui marche pas
    Par gloubi dans le forum Langage SQL
    Réponses: 13
    Dernier message: 14/02/2008, 16h25
  2. [Mysql 5.0.22] Probleme jointure externe; ne marche pas ?
    Par Floweract dans le forum Langage SQL
    Réponses: 5
    Dernier message: 01/11/2006, 12h17
  3. [MySQL] LIKE qui ne marche pas
    Par H-bil dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 29/05/2006, 13h48
  4. [SQL] Jointure,Group BY et ORDER BY COUNT qui marche pas
    Par Stef784ever dans le forum Langage SQL
    Réponses: 8
    Dernier message: 17/08/2005, 12h28
  5. requete(jointure 2 tables) qui marche pas
    Par DaxTaz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/06/2004, 17h50

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