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

PHP & Base de données Discussion :

requetes multitables erreur 1052


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Par défaut requetes multitables erreur 1052

    impossible de faire passer cette requete...
    #1052 - Column 'id' in field list is ambiguous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $sql = $db -> query ("select id, nom, compteur
                    from table1, table2
                    where table1.id = table2.id
                    group by compteur desc
                    limit 0,5");
    une idée?

    et j'ai également un problème avec la date, j'ai tenté plusieurs choses:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT * FROM compteur WHERE ip = 127.0.0.1 AND date = $date;
    SELECT * FROM compteur WHERE ip = 127.0.0.1 AND date = 2007-12-28;
    SELECT * FROM compteur WHERE ip = 127.0.0.1 AND date = SYSDATE();
    Par contre ça passe comme cela:
    SELECT * FROM compteur WHERE ip = 127.0.0.1;

  2. #2
    Membre chevronné Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Par défaut
    Salut,
    Très probablement, id se retrouve dans les deux tables et donc tu devrais le qualifier dans la requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql = $db -> query ("select table1.id, nom, compteur
                    from table1, table2
                    where table1.id = table2.id
                    group by compteur desc
                    limit 0,5");
    Pour les dates, je mettrais des " autour

  3. #3
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Par défaut
    ça ne fonctionne pas vraiment:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select table1.id, table1.nom, table1.compteur, table2.id, table2.nom, table2.compteur
                    from table1, table2
                    where table1.id = table2.id
                    group by compteur desc
                    limit 0,5;
    #1052 - Column 'compteur' in group statement is ambiguous
    ça je m'en doutais...
    j'ai donc spécifier le nom de la table devant compteur dans le GROUP BY et il me crée 2 tableau pour le résultat. Bref je vois pas comment résoudre le problème

    Pour les dates, la requête fonctionne nickel merci!

  4. #4
    Membre chevronné Avatar de fenkys
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 376
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select table1.id, table1.nom, table1.compteur, table2.id, table2.nom, table2.compteur
                    from table1, table2
                    where table1.id = table2.id
                    group by table1.compteur desc
                    limit 0,5;
    Mais en l'occurence ta requête aurait pu être plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select table1.id, table1.nom, table1.compteur, table2.id, table2.nom, table2.compteur
                    from table1 INNER JOIN table2 USING (id)
                    group by table1.compteur desc
                    limit 0,5;

    Pour les dates tu dois les convertir avant de les utiliser. Par exemple :

    SELECT * FROM compteur WHERE ip = '127.0.0.1' AND DATE_FORMAT(date,"Y%-%m-%d") = $date;

    Tu trouveras le détail des formats de date sur le site de Mysql.

  5. #5
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Par défaut
    Pour les dates pas de soucis j'avais déjà converti
    j'avais juste simplifier mes questions histoire de bien cibler là ou j'avais des difficultés.

    Pour la requete avec plusieurs tables, cela ne fonctionne toujours pas, j'obtiens 2 tables distinctes et donc mes valeurs ne sont pas pas rangées...

Discussions similaires

  1. Requete suppression multitables Erreur 3354
    Par om-player dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/01/2008, 09h25
  2. [SQL-Server] requete - calcul - erreur bizarre
    Par dor_boucle dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/03/2006, 15h27
  3. Probleme avec requete, une erreur survient...
    Par charleshbo dans le forum Access
    Réponses: 6
    Dernier message: 09/02/2006, 14h27
  4. Problème requete multitables
    Par dl_jarod dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/10/2005, 10h33
  5. REquete sans erreur sql qui n'agit pas ........
    Par Skam dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/02/2005, 13h41

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