Recherche dans une table avec comparaison par pair
waren56
Messages postés
83
Statut
Membre
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
Bonsoir,
Je travail sur la base de données sakila :

Je tente de répondre à cette question depuis une heure :
Existe-t-il des acteurs qui ne jouent avec aucun autre acteur ?
Mon idée serait de selectionner tous les acteurs (col1), tous les acteurs avec lesquelles ils ont joué (col2) et leurs films en communs (col3) comme ceci :

J'ai mis deux fois la même table pour y voir plus clair et voici mon code pour l'instant :

Une fois que j'obtiens ça, pour répondre à la question, il ne me suffirait plus qu'à compter le nombre d'acteurs avec lesquelles chaque acteurs à joué et selectionner les acteurs ayant joué avec 0 autres acteurs.
(Aussi je n'arrive pas à faire le produit cartésien sur une table (afficher comme je l'ai fait une même table deux fois) du coup je suis passé par un WITH AS qui n'est pas une solution optimale).
En vous remerciant par avance :)
Je travail sur la base de données sakila :

Je tente de répondre à cette question depuis une heure :
Existe-t-il des acteurs qui ne jouent avec aucun autre acteur ?
Mon idée serait de selectionner tous les acteurs (col1), tous les acteurs avec lesquelles ils ont joué (col2) et leurs films en communs (col3) comme ceci :

J'ai mis deux fois la même table pour y voir plus clair et voici mon code pour l'instant :

Une fois que j'obtiens ça, pour répondre à la question, il ne me suffirait plus qu'à compter le nombre d'acteurs avec lesquelles chaque acteurs à joué et selectionner les acteurs ayant joué avec 0 autres acteurs.
(Aussi je n'arrive pas à faire le produit cartésien sur une table (afficher comme je l'ai fait une même table deux fois) du coup je suis passé par un WITH AS qui n'est pas une solution optimale).
En vous remerciant par avance :)
A voir également:
- Recherche dans une table avec comparaison par pair
- Table ascii - Guide
- Table des matières word - Guide
- Comparaison million milliard - Accueil - Technologies
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Recherche par image - Guide
1 réponse
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonjour, peux-tu publier le texte de tes requêtes, au lieu d'images?
je suis un peu déçu que tu renonces à travailler après seulement une heure.
connais-tu le concept de jointure externe? qu'est-ce qui t’empêche de faire le produit cartésien d'une table?
ta syntaxe me semble extraordinairement compliquée, pourquoi pas plutôt:
il te suffira ensuite de transformer cela en jointure externe.
je suis un peu déçu que tu renonces à travailler après seulement une heure.
connais-tu le concept de jointure externe? qu'est-ce qui t’empêche de faire le produit cartésien d'une table?
ta syntaxe me semble extraordinairement compliquée, pourquoi pas plutôt:
select t1.actor_id as actor_id1, t2.actor_id as actor_id2 from film_actor as t1, film_actor as t2 where t1.film_id = t2.film_id and t1.actor_id <> t2.actor_id
il te suffira ensuite de transformer cela en jointure externe.
Du coup vous pouvez me dire comment y répondre svp ? J'ai quand même pris du temps à faire ces schémas...
- Le prof m'a dit que pour faire le produit cartésien je pouvais rappeler la même table sous le même nom, par exemple :
Mais ça ne évidemment pas.
fais une jointure externe, tu verras la différence.
le critère de jointure se spécifie avec ON, pas avec WHERE.