Conception d'une requête SQL
Bonjour à tous,
J'ai une question technique sur la conception d'une requête SQL.
Pour tenter d'être le plus clair possible, voici un exemple :
Code:
1 2 3 4 5 6 7
| Table1 (
Id (Entier)
)
Table2 (
<div style="margin-left:40px">IdTable1 (Entier)
Attribut (Entier)</div>) |
Le champs IdTable1 est une clé étrangère qui référence Table1.id.
La clé primaire de Table2 est IdTable1 et Attribut.
Exemple de jeu de valeurs :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Table1
0
1
Table2
0 1
0 4
0 5
1 1
1 2
1 3
1 5 |
Je souhaite conaitre tous les éléments de table1 pour qui possèdent Attribut = 3 ET Attribut = 5.
Ma requête est la suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| SELECT t1.Id
FROM Table1 t1, Table2 t2
WHERE t2.IdTable1 = t1.Id
AND t1.ID IN (
SELECT t1.Id
FROM Table1 t1, Table2 t2
WHERE t2.IdTable1 = t1.Id
AND t2.Attribut = 3)
AND t1.ID IN (
SELECT t1.Id
FROM Table1 t1, Table2 t2
WHERE t2.IdTable1 = t1.Id
AND t2.Attribut = 5); |
Dans mon exemple, la requete doit renvoyer l'élément de table1 ayant l'Id "1".
Existe t'il des moyens plus simples d'obtenir le même résultat, sans sous requêtes?
Ma façon de faire peut poser problème si on imagine que j'ai 20 sous requêtes à faire.
Merci pour votre aide
Robin