Vous n'avez pas besoin d'interroger les tables à plusieurs reprises. Mon commentaire a peut-être été, mais trop obscur, mais je tente de vous faire allusion à quelque chose comme:
select m.name
from movie m
join ticket t on t.movid = m.movid
join patron p on p.pid = t.patronid
group by m.movid, m.name
having count(distinct p.gender) = 2;
Cette recherche tous les billets pour tous les films, et compte le nombre de genres distincts du patron qui avait les billets. (Ceci suppose qu'il n'y a que deux genres bien sûr, pour plus de simplicité, si vous en avez plus, vous pouvez ajouter un filtre). La clause having
vérifie que le nombre est de 2. Si un film n'a que des clients masculins ou féminins, pas les deux, le compte serait de 1, et il serait exclu du résultat.
SQL Fiddle demo.
http://stackoverflow.com/questions/19499472/sql-query-get-multiple-values-from-same-column-for-one-row – Catmandu
Qu'est-ce que vous avez à ce jour? Si vous pouvez rejoindre les tables pour obtenir efficacement tous les clients pour tous les films, vous pouvez compter le nombre de genres distincts pour chacun d'eux? –
J'ai commencé à me joindre aux tables, mais je ne suis pas certain de la marche à suivre pour le décompte. – sonobenissimo