CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

jointures SQL

Pseudo supprimé
Pseudo supprimé 01 mai 2010 à 00:10:09

Bonjour,

j'ai une table "relation" qui est une table intermédiaire comportant en clé primaire 2 champs qui sont les identifiants de comptes clients. (par exemple : id_1 = 154 et id_2 = 155)

voici un schéma :
http://www.hapoelshack.com/img/maxi/tableau.jpg

les comptes clients sont listés dans la table "compte", avec un numéro d'identifiant en clé primaire (ex : id = 154) et les champs "nom" et "prénom".

quand je fais une requête sur la table intermédiaire "relation", je fais une jointure avec la table "compte" du genre :

"WHERE relation.id1 = compte.id"

ce qui me permet d'obtenir le nom et prénom du compte correspondant à " id_1 ", mais pas ceux correspondant à " id_2 " dans ma table intermédiaire "relation".

Comment faire ou quelle jointure appliquer pour que la requête me retourne à la fois le nom et prénom de l'id_1 ET de l'id_2 ?

Merci beaucoup !

deepblue
deepblue
Niveau 16
01 mai 2010 à 05:04:18

SELECT relation.champ1, relation.champ2, table1.champ, table1.champ2, table2.champ, table2.champ2
LEFT JOIN table1 ON table1.champ1 = relation.champ1
LEFT JOIN table2 ON table2.champ1 = relation.champ2

A tester

Bunyan
Bunyan
Niveau 17
01 mai 2010 à 09:27:09

Ou sinon :
SELECT nom AS nom1, prenom AS prenom1, nom AS nom2, prenom AS prenom2 FROM compte JOIN relation ON compte.id = relation.id1 AND compte.id = relation.id2;

Pas sur et certain que ça fonctionne, j'ai un peu de mal avec les sélections multiples des mêmes champs (chose qui est possible :) ).

Pseudo supprimé
Pseudo supprimé 01 mai 2010 à 09:39:03

je n'ai que 2 tables deepblue :doute:

j'ai testé les 2 solutions, mais ça ne m'affiche rien, pas d'erreur non plus ... :doute:

deepblue
deepblue
Niveau 16
01 mai 2010 à 16:53:32

noel_uber_alles, oops j'ai mal compris...cela dit, tu vires la selection de la deuxième table et ça marchera quand même :ok:

Pseudo supprimé
Pseudo supprimé 03 mai 2010 à 20:46:50

j'ai essayé tout ce que vous dites, mais ça ne marche pas, en fait ça m'affiche une page blanche (sans message d'erreur).

voilà mon code, et mes tables, sur une même image, peut-être que ce sera un peu plus clair, je comprend vraiment pas ce qui cloche.

http://hapoelshack.com/img/maxi/sql.jpg

(pour rappel je souhaite que la requête affiche le nom et prénom correspondants à "id1" ET ceux correspondants à "id2", je précise que même mon prof d'info n'a pas trouvé :doute: )

Pseudo supprimé
Pseudo supprimé 03 mai 2010 à 20:50:31

SELECT *
FROM compte, lienns
WHERE compte.id = lienns.id1
AND lienns.id1 = lienns.id2
AND (id1 =1 OR id2 =1);

"MySQL n'a retourné aucun enregistrement." :sarcastic:

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment