Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1733 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Lien entre les tables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lien entre les tables

n°2170487
bingojm
Posté le 09-01-2013 à 17:58:12  profilanswer
 

Bonjour à tous,
 
Voici les 2 tables que j'ai:
 
Table1:
nom     prenom     gsm
Durand Michel       0412334
Dupont Alain         0668463
Durand Michel       0516561
 
Table2:
Sender     Message
0412334   Salut...
0516561   Merci...
0789556   Génial...
 
J'aurais voulu savoir si j'aurais pu faire quelque chose du genre:

Code :
  1. SELECT Sender, Message, nom, prenom, gsm FROM Table1, Table2 WHERE gsm = Sender


Je sais que le code ci-dessus peut fonctionner, mais j'aurais voulu savoir s'il est possible d'afficher le nom et prénom des personnes SI le n° de gsm existe dans la Table1 SINON seul le message s'affiche, sans le nom et prénom.
 
Donc la fonction WHERE ci-dessus est trop restrictive. Par exemple, pour le n° 0789556  dans la Table2, je n'aurai pas de correspondance mais je voudrais malgré tout que toute la Table 2 s'affiche.
 
Est-ce possible?
 
Merci d'avance pour votre aide!

mood
Publicité
Posté le 09-01-2013 à 17:58:12  profilanswer
 

n°2170488
Riokmij
Blink and you're dead
Posté le 09-01-2013 à 18:03:49  profilanswer
 

Oui c'est possible, c'est une jointure à gauche.
 
Essaie avec ça :
 

Code :
  1. SELECT Sender, Message, nom, prenom FROM Table2 LEFT OUTER JOIN Table1 ON gsm = Sender


---------------
Are you two fucking? Are you serious? Right in front of my salad?!
n°2170723
bitben
Posté le 11-01-2013 à 14:23:44  profilanswer
 

je rebondis sur cette question pour demander comment ça fonctionne si l'on aplusieurs plusieurs fois une référence à une autre table
 
mon code si dessous fonctionne  :
 
SELECT Dateheure, Puissance1, CodeCat  // CodeCat étant le champ dans l'autre table que je veux afficher en lieux et place de l'ID
FROM DonnéesHoro
LEFT JOIN BaseGenerale.TableCategories ON (BaseGenerale.TableCategories.ID_Cat = DonnéesHoro.ID_Cat1)
 
mais j'ai en fait plusieurs champs ID_Cat1...ID_Cat6  
ou je veux évidemment afficher le texte correpondant plutot que le n° d'index
 
je vais donc rajouter un CodeCat  
SELECT Dateheure, Puissance1, CodeCat,  Puissance2, CodeCat,  
mais je ne comprend pas comment il fera le lien avec ID_Cat2 ?

n°2170742
deliriumtr​emens
sic transit intestinal...
Posté le 11-01-2013 à 15:19:37  profilanswer
 

Jouer avec les alias de champs / tables + 1 jointure par "clé"
 

Code :
  1. SELECT d.DateHeure, d.Puissance1,
  2. c1.CodeCat as CodeCat1,
  3. c2.CodeCat as CodeCat2
  4. c3.CodeCat as CodeCat3
  5. FROM DonneesHoro d
  6. LEFT JOIN BaseGenerale.TableCategories c1 ON (c1.ID_Cat = d.ID_Cat1)
  7. LEFT JOIN BaseGenerale.TableCategories c2 ON (c2.ID_Cat = d.ID_Cat2)
  8. LEFT JOIN BaseGenerale.TableCategories c3 ON (c3.ID_Cat = d.ID_Cat3)


Message édité par deliriumtremens le 11-01-2013 à 16:02:53
n°2170750
bitben
Posté le 11-01-2013 à 15:54:43  profilanswer
 

géniqal! merci beaucoup à vous... bon, trés longtemps que je n'ai pas fait de bdd et un peu largué, je dois dire...
 
petite correction :
(c1.ID_Cat = d.ID_Cat1)...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Lien entre les tables

 

Sujets relatifs
Lien vers un fichier autreListe et lien de fichiers
Difficultés MysqlLien absolu-relatif pour un fichier local ? [RESOLU]
Bloquer le scroll lors d'un clic sur un lienAide flashcode -> Lien vidéo
php lien Jul Script 2.1.1 download.phpMySQL - Optimiser le lien entre deux tables
Lien vers tablesBBD et Tables lien maille
Plus de sujets relatifs à : Lien entre les tables


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR