Bonjour,

J'ai une table :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
CREATE TABLE tb
(
    tb_id  INTEGER,
    tb_val INTEGER,
    tb_key INTEGER,
 
    CONSTRAINT tb_pk PRIMARY KEY (tb_id)
);
J'ai un jeu de test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
INSERT INTO tb VALUES (1,  1, 1);
INSERT INTO tb VALUES (2,  5, 4);
INSERT INTO tb VALUES (3,  2, 1);
INSERT INTO tb VALUES (4,  1, 2);
INSERT INTO tb VALUES (5,  2, 3);
INSERT INTO tb VALUES (6,  4, 2);
INSERT INTO tb VALUES (7,  3, 3);
INSERT INTO tb VALUES (8,  3, 4);
INSERT INTO tb VALUES (9,  4, 5);
INSERT INTO tb VALUES (10, 5, 6);
INSERT INTO tb VALUES (11, 1, 5);
INSERT INTO tb VALUES (12, 5, 1);
Je veux obtenir toutes les valeurs tb_val pour lesquelles tb_key vaut (1 ou 4 ou 3) et (2 ou 4) et (5 ou 3)
Soit dans l'exemple :
car la val 2 échoue pour (2 ou 4), la val 4 échoue pour (1 ou 4 ou 3) et la val 5 échoue pour (5 ou 3)

Quelle est la meilleure requête pour obtenir 1 et 3 en résultats pour le jeu de test fourni ?

Merci à tous ce qui releveront ce défi !