Pb de jointure

Résolu
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

  1. 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
    1. Contributeur
      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
  2. C'est parfait, merci beaucoup !! :-)
    À partir de là je saurai faire.
    Bon wek-end !
    0
    1. Contributeur
      super! peux-tu marquer la discussion comme résolue?
      0