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

Requêtes MySQL Discussion :

problème de requetes mysql


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 220
    Points : 104
    Points
    104
    Par défaut problème de requetes mysql
    Bonjour à tous,

    Je n'arrive pas à trouver la bonne requête qui me permet de trouver un centre avec son nom et sa description. Le problème c'est que le nom et la description sont référencé par une clé étrangère de même type(label). Que faire svp?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    # voici mes tables
    CREATE TABLE lang (
    	ID_LANG INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    	ID_LABEL VARCHAR(50) NOT NULL REFERENCES label(ID_LABEL),
    	REF_FLAG VARCHAR(50)
    ) TYPE=INNODB;
     
    CREATE TABLE label (
    	ID_LABEL VARCHAR(50) NOT NULL, 
    	ID_LANG INT NOT NULL REFERENCES lang(ID_LANG),
    	LABEL VARCHAR(250) DEFAULT "", 
    	PRIMARY KEY(ID_LABEL, ID_LANG)
    ) TYPE=INNODB;
     
    CREATE TABLE center (
    	ID_CENTER INT NOT NULL PRIMARY KEY AUTO_INCREMENT, 
    	NAME VARCHAR(50) NOT NULL REFERENCES label(ID_LABEL),
    	ID_LABEL VARCHAR(50) NOT NULL REFERENCES label(ID_LABEL)
    ) TYPE=INNODB;
     
    #voici ma requete
    SELECT C1.ID_CENTER, L1.LABEL AS 'NAME' FROM center AS C1, label AS L1 WHERE L1.ID_LANG = '2' AND C1.NAME = L1.ID_LABEL UNION SELECT L2.LABEL AS 'label' FROM label AS L2, center AS C2 WHERE L2.ID_LANG = '2' AND C2.ID_LABEL = L2.ID_LABEL
    voici l'erreur : #1222 - The used SELECT statements have a different number of columns

    Merci

  2. #2
    Membre confirmé Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Points : 547
    Points
    547
    Par défaut
    Citation Envoyé par samplaid Voir le message
    CREATE TABLE center (
    ID_CENTER INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    NAME VARCHAR(50) NOT NULL REFERENCES label(ID_LABEL),
    ID_LABEL VARCHAR(50) NOT NULL REFERENCES label(ID_LABEL)
    ) TYPE=INNODB;
    Je ne comprends pas pourquoi tes 2 champs références la même colonne ???

  3. #3
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 220
    Points : 104
    Points
    104
    Par défaut
    pcq le site est multi-langue, un centre à nom et une description différente selon la langue.

    exemple :
    - en anglais
    *name = 'English center',
    *description = 'English'
    - en francais
    *name = 'Centre anglais',
    *description = 'Anglais'

    c'est pour ca que name et description font référence à la table label

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 032
    Points : 23 767
    Points
    23 767
    Par défaut
    Bonjour,

    Le message d'erreur signifie que les 2 requêtes n'ont pas le même nombre de colonnes, ce qui est le cas. Le premier select en renvoie 2 alors que le second n'en revoie qu'une.
    Il faut le même nombre et le même type de colonnes dans les 2 selects.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 220
    Points : 104
    Points
    104
    Par défaut
    oui c'est bien ca, je me rend compte que j'ai besoin d'une jointure plutot. Merci

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

Discussions similaires

  1. [MySQL] Problème syntaxe requete MySQL UPDATE
    Par flo73 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/07/2010, 07h41
  2. Problème phpmyadmin requetes mysql
    Par AurelBUD dans le forum Debian
    Réponses: 5
    Dernier message: 18/12/2006, 08h36
  3. Réponses: 11
    Dernier message: 08/06/2006, 16h53
  4. Problème de requete (MySQL 4.1.9 => 3.23.39.01)
    Par BigFoot69 dans le forum Requêtes
    Réponses: 9
    Dernier message: 28/03/2006, 16h31
  5. Problème sous requete MySQL
    Par gavelin dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/07/2004, 10h36

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