Aide pour requête SQL
Résolu
blasterofmetal
Messages postés
430
Statut
Membre
-
blasterofmetal Messages postés 430 Statut Membre -
blasterofmetal Messages postés 430 Statut Membre -
Bonjour,
Je n'arrive pas à trouver la requête SQL permettant de faire ce que je veux.
J'ai 3 tables :
-----------------------------------
| DEVICES |
-----------------------------------
DEV_ID
TPD_ID
DSCD_ID
DEV_Label
-----------------------------------
-----------------------------------
| DESCDEVICE |
-----------------------------------
DSCD_ID
DSCD_Marque
DSCD_Modele
...
-----------------------------------
-----------------------------------
| TYPEDEVICE |
-----------------------------------
TPD_ID
TPD_Label
...
-----------------------------------
Je voudrais sélectionner TOUT de DESCDEVICE quand TPD_LABEL = "capteur".
J'ai essayé de faire plusieurs jointures, type LEFT / INNER JOIN mais je ne trouve aucune solution.
Sachant que mes clés étrangères sont bien appliquées sur la table DEVICES.
Pouvez vous m'aider ?
Merci
Je n'arrive pas à trouver la requête SQL permettant de faire ce que je veux.
J'ai 3 tables :
-----------------------------------
| DEVICES |
-----------------------------------
DEV_ID
TPD_ID
DSCD_ID
DEV_Label
-----------------------------------
-----------------------------------
| DESCDEVICE |
-----------------------------------
DSCD_ID
DSCD_Marque
DSCD_Modele
...
-----------------------------------
-----------------------------------
| TYPEDEVICE |
-----------------------------------
TPD_ID
TPD_Label
...
-----------------------------------
Je voudrais sélectionner TOUT de DESCDEVICE quand TPD_LABEL = "capteur".
J'ai essayé de faire plusieurs jointures, type LEFT / INNER JOIN mais je ne trouve aucune solution.
Sachant que mes clés étrangères sont bien appliquées sur la table DEVICES.
Pouvez vous m'aider ?
Merci
2 réponses
-
Hello
J'essaierais ceci :
SELECT * FROM DESCDEVICE INNER JOIN DEVICES ON DESCDEVICE.DESCD_ID=DEVICES.DESCD_ID INNER JOIN TYPEDEVICE ON TYPEDEVICE.TPD_ID=DEVICES.TPD_ID WHERE TYPEDEVICE.TPD_LABEL='capteur'
A+ !-
-
Le début est simple :
SELECT * FROM DESCDEVICE
Je prends tout dans DESCDEVICE
INNER JOIN DEVICES ON DESCDEVICE.DESCD_ID=DEVICES.DESCD_ID
Je joins DESCDEVICE et DEVICES sur le champs DESCD_ID. Le INNER signifie que je ne prends que les correspondances entre les deux tables.
INNER JOIN TYPEDEVICE ON TYPEDEVICE.TPD_ID=DEVICES.TPD_ID
Et je re-joins tout ça avec la table TYPEDEVICE sur le champ TPD_ID.
Ainsi tu peux mettre la condition WHERE du TYPEDEVICE sur ta sélection de DESCDEVICE (les 3 tables sont liées, du coup si tu filtres sur un champ d'une table, ça filtre toutes les lignes de toutes les tables).
A ta dispo si besoin ;-) -
-
-