8768 sujets

Développement web côté serveur, CMS

Bonjour à tous

Dans la table A j'ai une colonne "groupList" qui contient des noms de groupes sous la forme
"groupe1;groupe2; ..."
Dans la table B j'ai une colonne "groupList" similaire

Je voudrais sélectionner les lignes de la table A pour lesquelles au moins un des groupes listés dans la colonne "groupList" se trouve dans la liste de la table B

En d'autres termes, qu l'intersection des deux groupList ne soit pas vide.

Y a-t-il un moyen d'exprimer cela dans une requête en MySQL ?
Bonjour,

SELECT * FROM `A`
LEFT JOIN `B` ON  `B`.`groupList` = `A`.`groupList`
WHERE `B`.`groupList` IS NOT NULL 


Ce code répond peut-être à votre demande. Je ne l'ai pas testé.
Merci de m'avoir répondu, mais ce n'est pas cela que je cherche
Le code que tu proposes recherche les lignes de A qui ont le même groupList que B
Ce que je cherche, ce sont les lignes de A dont l'un des éléments de groupList se trouve dans le groupList de B

Depuis que j'ai posé la question, j'ai fait des recherches sur Internet et il semble qu'il n'y ait pas de solution.

Je devrais sans doute changer de techno et avoir une table qui contient tous les noms de groupes et les relations "many to many" entre groupes et lignes de tables différentes.
Pas facile à gérer si on est amené à supprimer des groupes ou des éléments c'est pour ça que j'avais choisi de mettre une colonne groupList avec des ";"
Cette techno simple me permet de retrouver les lignes qui correspond à un groupe en écrivant

SELECT *
    FROM A
    WHERE groupList RLIKE '(^|;)group(;|$)'
   ;

ce qui correspond à mes besoins, mais ça ne permet pas de trouver les lignes ayant au moins un groupe en commun ou autres choses plus complexes.

Comme il ne semble pas y avoir de solution simple, je crois que je vais en rester là.
Hello Papy,

Pourquoi ne pas utiliser un modèle de données correct dès le début? C’est pas si compliqué que ça de gérer les relations many-to-many. T’auras réellement des requêtes plus simples en plus d’avoir quelque chose dévolutif. C’est dommage d’utiliser une base de données SQL pour y insérer une sorte de CSV non?
Merci de ta réponse
En y réfléchissant un peu, je me suis rendu compte qu'une table many to many permettait de traiter simplement le problème.

J'ai pour habitude de d'apprendre à utiliser une fonctionnalité que si j'en ai réellement besoin.
C'est la première fois que j'ai eu besoin de faire une table many to many.

J'aurais dû marquer le sujet comme résolu.