Select multiple

Résolu/Fermé
PSud Messages postés 1275 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 30 octobre 2023 - 1 mai 2018 à 14:16
PSud Messages postés 1275 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 30 octobre 2023 - 1 mai 2018 à 18:57
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 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 4 647
Modifié le 1 mai 2018 à 14:30
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 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 4 647
1 mai 2018 à 14:22
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