Donc, je crée un site de cinéma, où vous pouvez créer votre propre liste, vous pouvez ajouter les films que vous avez déjà regardés, vous prévoyez de regarder, etc.
sur mon site, vous avez la possibilité de Visitez le profil des autres utilisateurs et voyez leur liste, et vous pouvez vérifier quels sont ces films présents à la fois dans les vôtres et la liste des utilisateurs visités. P>
Donc, dites-vous que j'ai une table appelée une table, avec 2 colonnes: nom d'utilisateur (l'utilisateur qui a ajouté le film à sa liste) et titre (évidemment le titre du film) p>
J'ai quelques enregistrements dans ce tableau, comme: p> < P> Jean em> | film1 em> p> Jean em> | Movie5 em> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> Patrick em> | Movie1 em> p> Patrick em> | Movie2 EM> P> P> P> < > John em> | film3 em> p> Patrick em> | Movie3 em> John em> | Movie6 em> p> Patrick em> | Movie7 em> p> em> | film2 em> p> Dans cet exemple, Movie1, Movie2 et Movie3 sont les films courants de la liste de Patrick's et John's P> est ce que j'ai essayé: p> mais cela ne fonctionne pas, il retourne avec l'erreur suivante: la sous-requête revient avec plus d'une ligne em> p> J'apprécierais que quelqu'un puisse fournir une solution! p> p>
3 Réponses :
vous pouvez groupe par titre code> pour tous les films qu'ils aiment et obtiennent uniquement ceux pour lesquels
ayant compté (*) = 2 code> est vrai, ce qui signifie qu'ils aiment tous les deux :
select title
from tablename
where username in ('Patrick', 'John')
group by title
having count(*) = 2
Vous pouvez utiliser une jointure sur la même table ou (même requête de manière compacte) p>
Simplement: Sélectionnez le titre de (... 'Patrick') p joindre (... 'John') J utilise (titre); code>
Les autres réponses sont correctes aussi bien, mais à la fin, c'est celui que j'ai trouvé la meilleure solution pour mon problème. Merci! Je ne savais pas que je peux aussi rejoindre la même table
Si vous êtes intéressé .. J'ai mis à jour la réponse en ajoutant une manière plus compacte .. aussi
sous-requête basée, trouvez tout le titre du film John qui est dans le titre du film Patrick. Démo sur DB-FIDDLE
SELECT title FROM demo WHERE username="Patrick" AND title IN (SELECT title FROM demo WHERE username="John");
Thats serait un intersect simple, je suppose !!!