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 :

Lier plusieurs tables dans une requete


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 122
    Points : 83
    Points
    83
    Par défaut Lier plusieurs tables dans une requete
    Bonjour à tous,

    Je dois avouer que je suis perdu pour lier plusieurs tables ensembles lors d'une requête.

    Je ne sais pas si je dois utiliser INNER JOIN, LEFT JOIN, etc....

    Voici ou je galère

    J'ai une base de données réservations, dans celle-ci j'ai un id_reservation unique, la date l'heure etc...
    Pour cette réservation j'ai les personnes qui ont réservés dans une tables invités avec leur id_membre et la réservation à laquelle ils sont affectés.

    La ou est mon probleme c'est ici, les id_membre peuvent provenir d'une table de membre et une table de non-membre.

    Avec le id_membre soit que celui-ci est dans la table membres ou non_membres.

    Je n'arrive pas à batir ma requete correctement pour y réunir les deux,

    Merci de votre aide.

    Sylvain

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Points : 507
    Points
    507
    Par défaut
    Peux tu nous montrer les mcd ou autre schema de tes tables stp`?
    Marcuscircus : La seule différence entre un rêve et sa réalisation, c'est l'envie

  3. #3
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 122
    Points : 83
    Points
    83
    Par défaut
    Voici la structure de mes tables :

    Réservation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     	id_reservation 
    	nbre_personne
    	date_depart 	 
    	heure_depart 	
    	heure_fin 	
    	raison 	
    	disponible
    Ma table invités

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            id_reservation
            no_membre
    Ma table membres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     	nom 	
    	prenom 	
    	no_membre 	
    	telephone 	
    	courriel 	
    	motdepasse
    Ma table des nom membres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     	no_temp 	
    	nom 	
    	prenom 	
    	tel
    Dans la table invites le numero de membre est soit celui de la table membre (no_membre) ou celui de la table des nom_membres (no_temp)

    Si vous avez d'autres questions n'hésitez pas.

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Points : 507
    Points
    507
    Par défaut
    comment tu sais si c'est un numéro de membre ou non membre du coup?
    Marcuscircus : La seule différence entre un rêve et sa réalisation, c'est l'envie

  5. #5
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonsoir

    J'aurais tendance à faire une table intermédiaire "tINDIVIDU"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Individu_ID
    Individu_Statut (Membre / Non membre)
    Puis rectifier vos 2 tables
    table MEMBRE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     	Individu_ID
    nom 	
    prenom 	
    no_membre 	
    telephone 	
    courriel 	
    motdepasse
    table NON-MEMEBRE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     	Individu_ID
    no_temp 	
    nom 	
    prenom 	
    tel

    Autre solution (peut-être meilleure)
    Une seule table INDIVIDU
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Individu_ID
    Statut (Membre/Non-membre)
    nom 	
    prenom 	
    no_membre 	
    telephone 	
    courriel 	
    motdepasse
    sachant que "no_membre" sera un numéro temporaire dans le cas où il s'agit d'un non membre.


    Dans les deux solutions, il faut modifier la table "Invités"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     id_reservation
    Individu_Id
    Pierre

  6. #6
    Membre averti
    Profil pro
    Administrateur
    Inscrit en
    Mai 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 237
    Points : 433
    Points
    433
    Par défaut Une solution assez consise
    Sachant que "no_membre" sera un numéro temporaire dans le cas où il s'agit d'un non membre.
    En effet vu que le membre ou le non membre a les mêmes attributs, il est plus interessant d'avoir une seule table de membre.
    Cela simplicie la taille de la requête. Mettre une clé unique sur les champs courrier et motdepasse.

Discussions similaires

  1. [MySQL] Lier plusieurs tables dans une requete
    Par ConceptInterWEB dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/01/2014, 17h41
  2. [MySQL] relier plusieurs tables dans une requete "update" en mysql
    Par ainuod dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/06/2011, 19h45
  3. Réponses: 2
    Dernier message: 20/06/2005, 14h57
  4. Plusieurs LIKE dans une requete ?
    Par beastman007 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 22/02/2005, 12h10
  5. Eviter plusieurs OR dans une requete SELECT
    Par zoubidaman dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/06/2004, 05h56

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