Pb de jointure

Résolu
ephelya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
0
ephelya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   2
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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 282 Date d'inscription   Statut Membre Dernière intervention   2
 
C'est parfait, merci beaucoup !! :-)
À partir de là je saurai faire.
Bon wek-end !
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
super! peux-tu marquer la discussion comme résolue?
0