Pb de jointure

Résolu/Fermé
ephelya Messages postés 289 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 20 juin 2023 - 10 juil. 2020 à 19:23
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 - 11 juil. 2020 à 19:18
Bonjour à tous,
Voici ma table
CREATE TABLE `prof_user` (
  `id` int(5) NOT NULL,
  `iduser` int(5) NOT NULL,
  `idzone` int(5) NOT NULL,
  `idsstype` int(5) NOT NULL,
  `idkeyword` int(5) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `prof_user` (`id`, `iduser`, `idzone`, `idsstype`, `idkeyword`) VALUES
(11, 11, 3, 1, 502),
(18, 11, 4, 1, 493),
(19, 11, 4, 23, 504),
(24, 1, 4, 1, 493),
(25, 1, 1, 3, 501),
(26, 1, 1, 23, 398);

J'ai besoin de connaitre le nombre d'occurrences communes de l'ensemble de valeurs `idzone`, `idsstype`, `idkeyword` entre 2 utilisateurs (1 et 11 dans le cas présent) pour faire un % de similitude entre deux profils (ici 4, 1, 493 apparaissent pour chaque utilisateur donc j'ai 20% de similitude entre eux)
Je tourne en rond avec les jointures et je n'arrive pas à trouver la requête qui me permettrait de faire ça...
Quelqu'un peut-il m'aider svp ?
Merci d'avance ! :-)

Configuration: Macintosh / Firefox 78.0

3 réponses

yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
11 juil. 2020 à 10:35
0
ephelya Messages postés 289 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 20 juin 2023 2
11 juil. 2020 à 12:45
J'ai essayé de passer par des jointures FULL JOIN ou INTERSECT avec des sous requêtes, par exemple, mais j'ai eu des messages d'erreur et je n'ai pas gardé ces requêtes vu que ce n'est pas la bonne direction apparemment. En fait je n'ai pas la moindre idée de comment je dois m'y prendre...

( je ne suis pas une étudiante qui cherche la réponse à son exercice, c'est simplement la requête qui me manque pour finaliser mon site et je ne suis pas une experte de sql... ;-) )
0
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
11 juil. 2020 à 13:58
pour commencer, quelque chose comme ceci devrait te donner le nombre d'occurrences communes:
select count(*) 
from prof_user as a, prof_user as b
where a.iduser=1 and b.iduser=11
and  a.idzone= b.idzone and a.idsstype= b.idsstype and a.idkeyword = b.idkeyword
0
ephelya Messages postés 289 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 20 juin 2023 2
Modifié le 11 juil. 2020 à 14:50
C'est parfait, merci beaucoup !! :-)
À partir de là je saurai faire.
Bon wek-end !
0
yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
11 juil. 2020 à 19:18
super! peux-tu marquer la discussion comme résolue?
0