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 :

problème de requète avec jointure


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut problème de requète avec jointure
    Bonjour à tous,

    J'ai un petit soucis de langage SQL, il y a quelque chose que je n'arrive pas à faire.
    Alors je m'explique j'ai la structure de table suivante
    Je voudrais afficher les clients(customers) dans un tableau avec comme informations:

    Nom,
    Prenom;
    Code postal;
    Ville;
    Date de création du compte
    Ou as-t-il entendu parlez de nous (google ou annuaire)

    Par exemple avec la structure que j'ai donné plus tôt on aurait :
    | rintintin | junior | 75000 | Paris | 27/03/1980 | google |

    J'arrive à tout afficher sauf l'information "Ou as-t-il entendu parler de nous" dans un tableau (petite précision, je n'affiche que les 5 derniers cleint mas ça, c'est OK) avec le code suivant :


    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
     
    $sql = 'SELECT firstname, lastname, postcode, city, customers_info_date_created '
            . ' FROM address_book ad, customers_info cu '
            . ' WHERE ad.customers_id = cu.customers_info_id '
            . ' ORDER BY ad.customers_id DESC '
            . ' LIMIT 0 , 5';
     
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
    echo '<table border="1">'."\n";
    echo '<br>';
    while($data = mysql_fetch_assoc($req))
        {
    	echo '<tr>';
    	echo '<td width="200">'.$data['entry_firstname'].' '.$data['entry_lastname'].'</td>';
    	echo '<td width="200">'.$data['entry_postcode'].' '.$data['entry_city'].'</td>';
    	echo '<td>'.$data['customers_info_date_account_created'].'</td>';
    	echo '</tr>'."\n";
        }
    echo '</table>'."\n";
    J'ai essayé en complétant la requète mais peu être qu'il faut que j'en fasse une autre après, je ne sais plus trops là, tout ce que que je tente ne fonctionne pas ou me donne des résultats incohérents.
    Voila donc si quelqu'un pouvait m'aiguiller pour que je puisse récupérer l'information qu'il me manque pour chaque client et l'afficher dans mon tableau, cela serait sympa merci par avance. Et si je n'ai pas été assez clair, demandez moi et je précserais ce qui n'est pas clair.

    Jonathan


    PS: J'ai une autre petite question, j'ai écrit ma requète de deux façons différentes, et elle fonctionne dans les deux cas, laquelle est la mieux entre ces deux là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT firstname, lastname, postcode, city, customers_info_date_created
    FROM address_book ad
    LEFT OUTER JOIN customers_info cu
    ON ad.customers_id = cu.customers_info_id
    ORDER BY ad.customers_id DESC
    LIMIT 0 , 5
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT firstname, lastname, postcode, city, customers_info_date_created
    FROM address_book ad, customers_info cu 
    WHERE ad.customers_id = cu.customers_info_id
    ORDER BY ad.customers_id DESC
    LIMIT 0 , 5

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2003
    Messages : 52
    Points : 59
    Points
    59
    Par défaut
    Salut,
    Par exemple avec la structure que j'ai donné plus tôt on aurait :
    | rintintin | junior | 75000 | Paris | 27/03/1980 | google |
    je te propose d'essayer la requete suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT firstname, lastname, postcode, city, customers_info_date_created, 
    method FROM Adresse_book, Customer_info, Customers, Ouparler WHERE
    Adresse_book.Customers_id=Customers_info.Customers_info_id and
    Customers_info.Customers_info_id=Customer.Customers_id and
    Customers.Ha_id=Ouparler.Method_id;
    Plus les order by et les limit's que tu veux.

    J'espère que ça peut t'aider.
    C'est au pied du mur que l'on voit le mieux le mur!!!!!

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoups, je vais tester cela!!! Et après je te tiens au courant!!

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Je viens de tester et cela fonctionne ! merci beaucoups. Par contre j'ai encore un petit soucis, tout les clients n'ont pas forcement de methode remplir dans leur champs "ou avez vous entendu parler de nous", et pour cela, ils ne s'affichent pas. Aurai tu une idée de ce qu'il faudrait faire pour qu'il s'affiche aussi avec une case vide?

    encore merci en tout cas!

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 098
    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 098
    Points : 28 403
    Points
    28 403
    Par défaut
    Citation Envoyé par poupsunik
    Par contre j'ai encore un petit soucis, tout les clients n'ont pas forcement de methode remplir dans leur champs "ou avez vous entendu parler de nous", et pour cela, ils ne s'affichent pas. Aurai tu une idée de ce qu'il faudrait faire pour qu'il s'affiche aussi avec une case vide?
    En utilisant des jointures externes... ce qui aurait été beaucoup plus facile à mettre en oeuvre en écrivant la requête avec des jointures normalisées...
    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.

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    OK avec vos infos à tous les deux je devrais finir par m'en sortir!
    J'ai été voir la DOC sur les jointures externes avec le truc des left et right pour récupérer les lignes où il n'y a pas tout de remplit, et je pense avoir compris!
    merci bien je m'y mettrais demain...

Discussions similaires

  1. [XL-2007] Problème Requête avec Jointure de plusieurs Tables VBA
    Par fleur_d_eden dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/05/2012, 11h03
  2. Problème requête avec jointures multiples
    Par babouu dans le forum Langage SQL
    Réponses: 5
    Dernier message: 01/12/2011, 17h16
  3. Réponses: 16
    Dernier message: 20/01/2011, 12h45
  4. Requête avec Jointure (Problème)
    Par nirG95 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 09/10/2009, 15h13
  5. problème de requête avec jointures
    Par tinhat dans le forum Requêtes
    Réponses: 7
    Dernier message: 11/08/2003, 10h33

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