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 :

Requête SQL table to table


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Par défaut Requête SQL table to table
    Bonjour,
    j'ai une souci avec un affichage de donnée avec du SQL

    Je vous explique mon but :
    J'ai 2 tables
    1er : une table User (champs : id, nom, prenom, email, user, pass, level et actif)
    2e : une table soirée (champs : id, titre_soiree, date, personne )

    ce que je veux faire c'est d'afficher sur une page web, toute les soirées que l'on a fait et pour chaque soirée qui est venue.

    Donc, cela j'y arrive, mais dans mon champs : personne, il me mets les numéros des id des users et non les noms

    Ex désiré:
    Soirée du 24.06.11 :participant : Monsieur X, Madame Y, Monsieur Z

    Ce que ca me donne sur ma page :
    Soirée du 24.06.11 :participant : 1, 2, 3

    (
    1 = Monsieur X
    2 = Madame Y
    3 = Monsieur Z
    )

    Dans ma base de donnée, dans le champs personne de la table Soirée, j'ai comme donnée : 1,2,3
    (quand j'insère une ligne, j'ai fait en sorte que je peux sélectionner en case à cocher toute personne présente dans la soirée, et ca me retourne comme information l'id des user dans le champs personne)

    J'espère avoir été assez claire, c'est jamais facile d'expliquer un problème..

    en tout cas, merci d'avance de votre aide..

  2. #2
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    bonjour

    ce serait bien de fournir la requête en cause (en indiquant aussi le SGBD utilisé).

    Cela semble lié au fait que la colonne sélectionnée devrait être Nom et Prenom ?

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Il faut faire une jointure entre les deux tables afin de récupérer le nom de la personne.

    Ce serait bien aussi de nous donner la requête que tu as faite et qui aboutit au résultat obtenu.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre confirmé
    Homme Profil pro
    Data Ingenieur
    Inscrit en
    Mai 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Data Ingenieur
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2006
    Messages : 133
    Par défaut
    Bonjour,

    Pour faire propre

    une table User :
    id ( PK ? ),
    nom,
    prénom,
    émail,
    user,
    pass,
    level
    actif

    table soirée :
    id ( PK ),
    titre_soiree,
    date,
    personne_ID ( FK avec l'ID de la table user)

    Pour ta requête je dirais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select a.titre_soiree,a.date,B.nom,B.prenom
    from soirée  a
    inner join User b on b.id=a.personne_ID
    Après tu peux ajouter la clause where en fonction de tes paramètres envoyés par ton écran

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where A.ID= parametre_soirée OR B.ID=parametre_user
    Attention, c'est juste à titre indicatif. En effet, par exemple, le mot USER est réservé, tu ne pourras pas appeler ta table comme ça.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Espagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Par défaut
    Comme l'ont dit CinePhil et Olivier, il faut que tu nous donnes la requête que tu as utilisé.

    À première vue, il me semble que la colonne personne dans la table soirée est une clé étrangère qui pointe vers Id de la table User, si c'est le cas je pense que tu as mal conçu ta base de données.

    J'imagine ton MCD comme suit :
    User (0,n) ------- participer ------- (1,1) Soirée

    Je traduis :
    "Une personne peut participer dans plusieurs soirées, et Une soirée ne peut avoir qu'une seule personne"

    Mais le fait que tu obtiens un résultat avec les Id des personnes participants à une seule soirée montre que mon hypothèse est fausse.

    Cependant, cela n'explique pas le fait d'avoir une clé etrangère qui pointe vers User(Id) dans la table soirée, à moins que ce champ ne représente pas une clé étrangère, dans ce cas je crois qu'il serait convenable que tu nous donnes plus de détails.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Par défaut merci
    je mettrais ma requête dès ce soir, je suis au boulot là (je suis juste venu voir).. mais dès ce soir, je vous balance ma requête, à ce que je peux voir dans vos réponses, ça me semble une solution correcte, il me manque le lien entre les tables et l'id.

    Merci pour votre rapidité et de vos réponse.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Par défaut requete
    voilà la requete, en esperant qu'elle soit claire, mais avec des pros comme vous, je me dis qu'il ne doit pas y avoir de problème..


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT t_soiree.date, t_soiree.type, t_soiree.personnes, t_soiree.titre AS user 
    FROM t_soiree 
    LEFT JOIN t_user ON t_soiree.user = t_user.id 
    ORDER BY `date` DESC"
    encore merci

  8. #8
    Membre confirmé
    Homme Profil pro
    Data Ingenieur
    Inscrit en
    Mai 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Data Ingenieur
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2006
    Messages : 133
    Par défaut
    tu es sur de ta requête ?

    tu fais une jointure ouverte avec la table T_USER mais tu ne l'utilises pas dans ton select, c'est normal ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Par défaut requete
    j'ai essayé vos conseils, alors ça fonctionne, mais cela ne me donne que le premier enregistrement,

    1,2,3
    j'ai que le 1 qui va rechercher le bon nom de personne, le 2 et 3 ne sont pas présents

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Espagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Par défaut
    Citation Envoyé par jeromeb66 Voir le message
    voilà la requete, en esperant qu'elle soit claire, mais avec des pros comme vous, je me dis qu'il ne doit pas y avoir de problème..


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT t_soiree.date, t_soiree.type, t_soiree.personnes, t_soiree.titre AS user 
    FROM t_soiree 
    LEFT JOIN t_user ON t_soiree.user = t_user.id 
    ORDER BY `date` DESC"
    encore merci
    Je pense que t'as voulu écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT t_soiree.date, t_soiree.type, t_soiree.titre, t_soiree.personnes AS user 
    FROM t_soiree 
    LEFT JOIN t_user ON t_soiree.user = t_user.id 
    ORDER BY `date` DESC"
    En principe ça devrait marcher, mais comme j'ai dit dans mon post précédent, il ya quelques ambiguïtés dans ton MLD.
    Pouvez-vous illustrer par un simple exemple les données de la table soirée?

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

Discussions similaires

  1. [SQL] Problème avec script de pagination et requête sql sur deux tables
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/06/2006, 14h06
  2. problème de requête SQL sur 3 tables pour un while
    Par carmen256 dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/04/2006, 16h55
  3. requêtes sql sur plusieurs tables
    Par zahiton dans le forum Langage SQL
    Réponses: 4
    Dernier message: 25/11/2005, 10h59
  4. [SQL] requêtes SQL sur plusieurs tables
    Par zahiton dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/11/2005, 16h32
  5. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26

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