Select multiple

Résolu
PSud Messages postés 1275 Date d'inscription   Statut Membre Dernière intervention   -  
PSud Messages postés 1275 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour les spécialistes du SQL,

J'essaye sans succès de faire une sélection sur les deux tables suivantes :

TableA (id, nom, prénom)

TableB (user_id, nom_du_champ, valeur_du_champ)

la liaison entre les deux tables se fait via id et user_id

Tous les champs sont en texte sauf id et user_id

Si dans nom_du_champ on a Ville, alors valeur_du_champ contient le nom de la ville
Si dans nom_du_champ on a Code-postal, alors valeur_du_champ contient le code postal de la ville

Si je fais :

Select nom, prénom
From TableA
Inner Join
TableB On user_id = id
Where valeur_du_champ = "Ville"
Union
Select nom, prénom
From TableA
Inner Join TableB On user_id = id
Where valeur_du_champ = "Code-postal"

Je ramène bien toutes les informations mais j'ai deux lignes par id or je ne voudrais avoir qu'une seule ligne par id.

Ça ne doit pas être compliqué mais ma connaissance du SQL date de longtemps :-)

Merci d'avance à celui ou celle qui me trouvera la bonne commande.

Cldt

6 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

SELECT nom,prenom, TB.valeur_du_champ
FROM TableA  TA
LEFT JOIN TableB  TB ON TB.user_id = TA.id
WHERE nom_du_champ = "Ville"  OR nom_du_champ = "Code-postal" 


0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
NB: J'ai écrit "prénom" sans accent.... car il faut éviter de nommer des champs de ta bdd avec des accents ou des caractères spéciaux. (cela est valable également avec le nommage des variables dans ton code )
0