Bonjour à tous,

tout d'abord je m'excuse pour le manque de clarté de mon intitulé. Je vais être plus clair ici :-)

J'ai deux tables, A et B.
A contient plusieurs colonnes (col1, col2). col1 est la clé primaire.
B contient plusieurs colonnes (col1, col2, col3). col1 est une clé étrangère (de A).

A.col1 et B.col1 ne peuvent pas être null.
A.col2, A.col3, B.col2 et B.col3 peuvent être null.

Pour une clé primaire de A, je peux avoir des records dans B.

Mon but est de rapatrier pour 1 clé primaire de A n'ayant pas col2 et col3 null, l'ensemble des col2 et col3 (de B) n'étant pas null.

Il faut absolument que cette requête retourne quelque chose. Donc il faut trouver un A.col1 tel que A.col2 != NULL && (il existe au moins un record dans B tel que A.col1 == b.col1 && col2 != NULL && col3 != NULL).

La requête ci-dessous me donne presque ce que je veux, excepté qu'elle retourne le résultat pour tous les A.col1. Il faudrait limiter le résultat a 1 seul A.col1 ... Une idée ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
SELECT A.col1
     , A.col2
     , B.col2
     , B.col3
FROM A, B 
WHERE A.col1 IS NOT NULL 
  AND A.col2 IS NOT NULL 
  AND A.col1 = B.col1
  AND B.col2 IS NOT NULL
  AND B.col3 IS NOT NULL 
ORDER BY A.col1;
J'espère que mes explications sont assez claires :-)

D'avance, je vous remercie.