Jointure entre deux tables avec un Champs texte

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Jointure entre deux tables avec un Champs texte

par nejme.eddinne » 31 janv. 2008, 16:56

Merci
En fait j'ais mal compris, peut être parceque j'ai mis dans ma tête que c'était une fonction de recherche.

Exuse moi, t'a pas un lien d'aide pour comprendre les jointures...

Merci encore une fois

par Hubert Roksor » 31 janv. 2008, 16:39

Merci pour votre aide
Pas de problème. On peut se tutoyer si tu veux, c'est en général ce que l'on fait ici.
je dois respecter le LIKE sinon j'aurais des fausses réponses
Je pense que tu n'as pas lu le manuel de la fonction FIND_IN_SET(). Cette fonction fait précisément ce que tu recherches, contrairement à LIKE, qui est destiné à un usage différent.

par nejme.eddinne » 31 janv. 2008, 16:08

Merci pour votre aide, ça ne résoud pas mon problème. je dois respecter le LIKE sinon j'aurais des fausses réponses.

Sinon pour le language SMS, désolé.

par Hubert Roksor » 31 janv. 2008, 15:26

Regarde la fonction FIND_IN_SET() dans le manuel. Ta jointure ressemblera à

Code : Tout sélectionner

SELECT * FROM Table1 t1 JOIN Table2 t2 ON FIND_IN_SET(t2.IdU, t1.Utils)
Les performances de ce type de requête sont acceptables pour de petites tables (dizaines d'enregistrements) et deviennent quasi-exponentiellement pires au fur et à mesure que les tables grossisent. La requête deviendra lente avec un millier d'enregistrements et pratiquement inutilisable à partir d'un dizaine de milliers.
Et par la mm occasion si qq1 a un cours sur les "join" un peut plus explicite que celui de developpez.com
Regarde le forum des FAQs. Au fait, ce serait cool d'éviter les abbréviations SMS, on est plutôt allergiques par ici, merci.

Jointure entre deux tables avec un Champs texte

par nejme.eddinne » 31 janv. 2008, 14:12

Bonjour
J'ais un petit soucis au niveau d'une requete SQL...

Table1:

Code : Tout sélectionner

CREATE TABLE Table1 (Idgroup INT, NOmgroup VARCHAR(255), Utils VARCHAR(255))
Table2

Code : Tout sélectionner

CREATE TABLE Table2 (IdU INT, NOmU VARCHAR(255))
contenu Table 1:

Code : Tout sélectionner

1 | Group1 | 1,2 2 | Group2 | 2,3
contenu Table 2:

Code : Tout sélectionner

1 | Agent 1 2 | Agent 2 3 | Agent 3
Quand je selectionne un group je veux sortit tout les agents de ce Group sachant que chaque agent peut appartenir a plusieurs groupes...

J'ai pensé a cette requete:

Code : Tout sélectionner

SELECT ut.* FROM Table2 ut, Table1 grp WHERE grp.Utils LIKE 'ut.IdU,%' OR grp.Utils LIKE '%,ut.IdU,%' OR grp.Utils LIKE '%,ut.IdU'
mais biensure ça ne marche pas (c'était évident je sais lol )
quelqu'un a une idée s'il vous plait, je sais que la structure de la Table est fausse mais je dois faire avec malheureusement...

Et par la mm occasion si qq1 a un cours sur les "join" un peut plus explicite que celui de developpez.com

Merci beaucoup...