0
votes

Comment sélectionner des titres communs de la table?

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.

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)

J'ai quelques enregistrements dans ce tableau, comme: < P> Jean | film1

Jean | Movie5 Patrick | Movie1

Patrick | Movie2 < > John | film3

Patrick | Movie3

John | Movie6

Patrick | Movie7

| film2

Dans cet exemple, Movie1, Movie2 et Movie3 sont les films courants de la liste de Patrick's et John's

est ce que j'ai essayé: xxx

mais cela ne fonctionne pas, il retourne avec l'erreur suivante: la sous-requête revient avec plus d'une ligne

J'apprécierais que quelqu'un puisse fournir une solution!


1 commentaires

Thats serait un intersect simple, je suppose !!!


3 Réponses :


2
votes

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


0 commentaires

1
votes

Vous pouvez utiliser une jointure sur la même table xxx

ou (même requête de manière compacte) xxx


3 commentaires

Simplement: Sélectionnez le titre de (... 'Patrick') p joindre (... 'John') J utilise (titre);


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



1
votes

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");


0 commentaires