2014-07-10 5 views
1

J'ai les deux tables, les défis et les concurrents. Les participants ont un id, un challenge_id et une colonne user_id. Étant donné un ensemble d'identifiants d'utilisateur, je veux trouver l'ensemble des défis tels qu'un défi est dans l'ensemble si tous les candidats dont les challenge_ids sont égaux à l'ID du défi ont un id_utilisateur dans l'ensemble donné d'identifiants d'utilisateur. J'ai l'impression d'avoir besoin d'une sorte d'instruction IN ALL, mais bien sûr, cela n'existe pas.SQL: Trouver toutes les lignes dans une table pour laquelle toutes les lignes d'une autre table qui se réfèrent à la ligne d'origine ont une certaine propriété

Des idées sur la façon de trouver cette liste de lignes?

+1

Pouvez-vous fournir des exemples de données? Un violon SQL aiderait beaucoup aussi. –

+0

Veuillez également fournir le résultat attendu sous forme de tableau. (Après avoir créé un violon). Les descriptions de résultats sont souvent énigmatiques. ;) –

Répondre

0

est-ce pas la même chose que « trouver l'ensemble des défis où tous concurrents avec qui challenge_id sont dans l'ensemble donné des IDs utilisateur. »,

pour trouver un ensemble où TOUS les lignes rencontrent certaines conditions , vous devez trouver que le jeu dans lequel Aucun membre ne pas accomplissons la condition, si cela est la même chose que:

« trouver l'ensemble des défis où il y a NO concurrents avec ce challenge_id qui PAS dans l'ensemble d'ID utilisateur donné. ",

Select distinct challenge_Id 
From Contestents c 
Where Not exists (Select * From Contestents 
        Where challenge_Id = c.challenge 
        And user_id not In ([List of UserIds])) 
Questions connexes