D'après ce que je lis, c'est le genre de chose qui doit être fait avec un opérateur de division, mais apparemment cela n'est pas implémenté dans MySQL . Fondamentalement, mon installation est une table avec deux colonnes où les clés sont listées plusieurs fois avec des listes différentes dans la deuxième colonne, par exemple.MySQL: Sélection de clés étrangères avec des champs correspondant à tous les mêmes champs d'une autre table
PID | GID
A1 | G1
A1 | G2
A2 | G1
A2 | G3
A3 | G1
A3 | G2
A4 | G2
A4 | G3
Fondamentalement, je dois trouver un sous-ensemble de la table en fonction de PID et tous les GID qui y sont associés, par exemple tous GID que A3 est affecté, ce qui est assez facile à obtenir, la production d'une table intermédiaire
PID | GID
A3 | G1
A3 | G2
Mais ce qui me donne du mal est de trouver comment sélectionner les enregistrements dans la table d'origine qui correspondent à tous les GID pour la table de sous-ensemble. Comme je l'ai dit, tout ce que j'ai pu trouver pointe vers un opérateur de division, mais cela n'existe pas dans MySQL, donc je suis au bout du compte. Je ne peux pas trouver un moyen de rejoindre ou faire une opération qui correspond à tous les GID - seulement des correspondances partielles, ce qui n'est pas ce que je cherche. De l'aide? Le livre que je regarde n'est pas particulièrement utile.
Si PID et GID n'étaient pas directement liés, vous deviez utiliser COUNT (DISTINCT GID). – AndreKR
Cela fonctionne vraiment bien - c'est quelque chose que j'essayais, mais j'avais une mauvaise syntaxe; Je suppose que c'est parce que j'essayais de compter des GID distincts, ce qui a causé des problèmes. Merci! – Stuart