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 :

[Sous Requete] ne fonctionne pas => incompréhensible


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Points : 89
    Points
    89
    Par défaut [Sous Requete] ne fonctionne pas => incompréhensible
    Bonjour,

    Voilà, je fais une requête sous MySql que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DISTINCT Ville FROM MagParAffilie WHERE idMag = (SELECT DISTINCT idMag FROM cmd_contenu WHERE idCommande = '47')
    Là j'ai no data retourned, et pourtant quand je remplace la sous-requête par le résultat qu'elle devrait retourné, à savoir 05112, là requête me sort bien la ville désirée...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DISTINCT Ville FROM MagParAffilie WHERE idMag = (05112)
    Donc là je comprends vraiment pas pourquoi ça ne marche pas... A savoir que les idMag des 2 tables sont de mêmes types.

    Si quelqu'un voit d'où cela peut venir....

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Et en utilisant l'opérateur IN plutôt que = ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Points : 89
    Points
    89
    Par défaut
    j'y ai pensé aussi, mais en vain...

  4. #4
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 612
    Points
    58 612
    Billets dans le blog
    11
    Par défaut
    Salut,

    Ton champ "idMag" n'est pas un champ de type texte ???

    Si c'est le cas, cela provient que tu dois mettre ton résultat entre croche.

    J'ai eu ce problème, et je l'ai résolu de la façon suivante.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  5. #5
    Membre du Club Avatar de adil_suptem
    Inscrit en
    Décembre 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    Essayer d'utiliser la requette suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT Ville FROM MagParAffilie WHERE idMag = (SELECT DISTINCT idMag FROM cmd_contenu WHERE idCommande = 47)

  6. #6
    Membre du Club Avatar de adil_suptem
    Inscrit en
    Décembre 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    ca doit marcher

  7. #7
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Points : 89
    Points
    89
    Par défaut
    Ha ha... J'ai réussi à identifier la source de l'erreur, bon par contre j'y comprends rien.

    En faite, ma table MagParAffilie est remplie par un fichier txt de type : "05112","M.","TOTO"...
    "05113",....

    Pour remplir la table j'utilise cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    LOAD DATA LOCAL INFILE '/home/srv/www/MaJBdD/MaJ-MagParAffilie-.txt' REPLACE INTO TABLE MagParAffilie
    	FIELDS TERMINATED BY ';'
        OPTIONALLY ENCLOSED BY '\"'
    	ESCAPED BY '\\\'
    	LINES TERMINATED BY '\\r'
    Mais le problème c'est que je me retrouve avec des valeurs de type "05512" dans mon champs idMag, hors, je n'ai pas besoin de guillemets, donc j'utilise la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    update MagParAffilie set idMag = replace(idMag,'"','')
    A l'oeil nue les valeurs de idMag dans les 2 tables (MagParAffilie et cmd_contenu) sont identiques (pas d'espace avant, après...) mais pas pour MySql car quand je fais copier/coller l'idMag de la table cmd_contenu à MagParAffilie ma requête fonctionne !!

    S'est fou ça quand même, non ?

    Comment auriez-vous fais à ma place ? (je saute par la fenêtre ?)

    PS : Pour vous répondre, idMag est bien en varchar, mais le résultat est le même avec ou sans guillemets

    Idem pour idCommande :
    select * from cmd_contenu where idCommande = '47'
    et
    select * from cmd_contenu where idCommande = 47
    fonctionnent

  8. #8
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Points : 89
    Points
    89
    Par défaut
    P'tit Up' !

    Je galère toujours comme un chien... MagParAffilie.idMag != cmd_contenu.idMag et pourtant à l'oeil nu ce sont les mêmes !!

    Personne n'a jamais eu ce problème ?

    A savoir que cmd_contenu.idMag est rempli par des INSERT INTO en PHP.

    En plus,gros truc de psychopathe : quand je fais 'coupé' (sous l'interface administration) la valeure de idMag de ma table MagParAffilie puis que je la 'colle' à la même place la requête fonctionne...

  9. #9
    Expert éminent
    Homme Profil pro
    Big Data / Freelance EURL
    Inscrit en
    Mars 2003
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Big Data / Freelance EURL

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 124
    Points : 7 291
    Points
    7 291
    Par défaut
    y'a pas un espace intempestif ?

    Et/Ou alors un char qui alimente un varchar et qui laisse l'espace ?

  10. #10
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Points : 89
    Points
    89
    Par défaut
    Non non, aucun espace et il s'agit bien de 2 varchar...

Discussions similaires

  1. 'ComboBoxEx32' sous vista ne fonctionne pas ?
    Par Steff2 dans le forum Web & réseau
    Réponses: 2
    Dernier message: 30/11/2007, 15h10
  2. div overflow sous firefox ne fonctionne pas
    Par ptitpoisson dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 06/08/2007, 17h09
  3. Réponses: 15
    Dernier message: 01/05/2007, 00h54
  4. Réponses: 6
    Dernier message: 23/12/2006, 12h46
  5. Requete avec une sous-requete... Ne fonctionne qu'a moitie..
    Par mythtvtalk.com dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 18/08/2003, 09h54

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