Accueil > Forum > > > > Chercher occurrences sur plusieurs tables par la jointure
Chercher occurrences sur plusieurs tables par la jointure
lundi 2 mai 2011 à 12:13:21 |
Chercher occurrences sur plusieurs tables par la jointure

foetus69
|
Bonjour, je suis nouvelle.
Ceci est mon premier post et j'espère que vous pourrez m'aider.
Je cherche une syntaxe pour retrouver un mot clef sur plusieurs tables mais que cela se fasse entre un champ et un autre. Je m'explique :
Grosso modo j'ai mon occurrence dans la table 3 (disons "toto") et si je trouve ce mot clef dans les champs des tables 1 et 2 j'affiche l'enregistrement de la table 3, je ne sais pas si c'est clair et faisable.
J'ai fait pour le moment ceci, en vain :
$query = "SELECT t3.* FROM table3 t3 INNER JOIN table2 t2 ON t3.nom LIKE '%t2.champ2%'";
Merci par avance de votre aide.
HK aka F69
|
|
mardi 3 mai 2011 à 16:32:29 |
Re : Chercher occurrences sur plusieurs tables par la jointure

foetus69
|
Bonjour,
J'ai essayé ceci :
SELECT t3.* FROM table3 t3 INNER JOIN table2 t2 ON t3.nom LIKE CONCAT('%', t2.champ2, '%')
Pas mieux...Il faut des valeurs exactes pour que ca marche les jointures ? Ca serait étonnant. LIKE CONCAT fonctionne qu'avec des mots clefs ?
On peut pas matcher de la sorte ?
A -> A
A -> B
A -> C
B -> A
B -> B
...
?
Par avance merci de votre aide.
|
|
mardi 3 mai 2011 à 17:07:18 |
Re : Chercher occurrences sur plusieurs tables par la jointure

jopop
|
Réponse acceptée !
Salut,
quel SGBD utilises-tu ?
J'ai tenté une telle requête (avec les familles de ROME (ex.: 'A') et les codes ROME (ex. : 'A1101')) sous MySQL et ça fonctionne. Voilà à quoi elle ressemble :
Code : SELECT *
FROM ref_rome_familles F
INNER JOIN ref_rome_metiers M
ON M.code LIKE CONCAT(F.code,'%');
Par contre j'ai pas compris ton histoire de matching A->A, A->B [..]
|
|
mercredi 4 mai 2011 à 09:57:27 |
Re : Chercher occurrences sur plusieurs tables par la jointure

foetus69
|
Bonjour et surtout un grand MERCI !!!!
Moi je faisais l'inverse
Si je reprends ta requête, je faisais :
Code : SELECT *
FROM ref_rome_familles F
INNER JOIN ref_rome_metiers M
ON F.code LIKE CONCAT('%',M.code,'%');
Je maitrise mal les jointures et n'avais pas compris le sens du ON. Juste à intervertir
Well done et encore MERCI à toi 
|
|
mercredi 4 mai 2011 à 09:59:33 |
Re : Chercher occurrences sur plusieurs tables par la jointure

jopop
|
Je t'avouerai que la première fois que j'ai tapé la requête dans Toad je l'ai également écrite à l'envers ^^
|
|
mercredi 4 mai 2011 à 11:20:12 |
Re : Chercher occurrences sur plusieurs tables par la jointure

foetus69
|
re bonjour,
Dernière question (si tu veux bien) : quelle est la bonne syntaxe pour la jointure pour dire trouve moi ça dans la table 1 OU dans la table 2.
Exemple trouver M.Code dans ref_rome_familles.code et la table disons : ref_rome_travailleurs T.
J'ai vu qu'on pouvait faire une succession d'INNER mais que ca sous-entend qu'on retrouve dans chaque table hors moi je cherche à trouver la correspondance dans l'une ou l'autre.
Tu sais ?
|
|
mercredi 4 mai 2011 à 11:33:30 |
Re : Chercher occurrences sur plusieurs tables par la jointure

jopop
|
Il faut que tes 2 tables aient la même structure, ou que les listes des champs sélectionnés correspondent. Exemple, soit 2 tables :
Code : tb1 { int id, varchar name, varchar code, varchar description }
tb2 { int id, varchar name, varchar code, int value }
Le principe est de faire la requête sur chaque table, et de sommer les résultats grace à "UNION/UNION ALL". Reprenons l'exemple. On cherche les enregistrements de tb1 & tb2 où code = 'ABC123' :
Code : SELECT id, name, code FROM tb1 WHERE code = 'ABC123'
UNION ALL
SELECT id, name, code FROM tb2 WHERE code = 'ABC123';
Tu noteras que je ne fais pas un "SELECT *", car le dernier champ n'est pas du même type dans les deux tables, le rassemblement ne serait donc pas possible.
NB : la différence entre UNION et UNION ALL :
UNION ALL : fait le rassemblement brut des 2 requêtes
UNION : applique un "DISTINCT" lors du rassemblement
Dans notre exemple, si tb1 et tb2 contiennent un même enregistrement (identique sur tous les champs de la sélection s'entend, donc même id, même name et même code) alors il ne ressortira qu'une fois.
|
|
mercredi 4 mai 2011 à 13:56:19 |
Re : Chercher occurrences sur plusieurs tables par la jointure

foetus69
|
RE re re re re,
Merci pour ce cours particulier ^^
Dans mon cas je recherche 'toto' dans plusieurs tables : dans le champ nom sur la table 1, dans un champ commentaires dans la table 2 etc... Ce n'est donc pas possible ?
Tu as un livre facile d'accès à me recommander sur le SQL ?
Merci
|
|
mercredi 4 mai 2011 à 14:07:24 |
Re : Chercher occurrences sur plusieurs tables par la jointure

jopop
|
J'ai pas de livre à te recommander, désolé
Par contre tu pourras trouver tous les tuto que tu souhaites sur Internet, que ce soit sur le Ring CS ou d'autres (ex. : developpez.com)
Pour ton cas c'est tout à fait possible, prenons un nouvel exemple.
Soit les 2 tables :
Code : tb1 {int id, varchar name, varchar description }
tb2 {varchar code, varchar label, double price }
Rien ne t'empêche de faire :
Code : SELECT name FROM tb1
UNION ALL
SELECT label FROM tb2;
En fait il faut simplement que les types et le nombre de champs sélectionnés dans ta "première" requête correspondent à ceux de la "deuxième" (et il faut qu'un tel regroupement ait un sens ^^ mais techniquement ça fonctionne)
|
|
mercredi 4 mai 2011 à 15:07:12 |
Re : Chercher occurrences sur plusieurs tables par la jointure

foetus69
|
Ok je vois et si une 3ème table fait son apparition, quelle est la syntaxe finale ?
En gros j'affiche les enregistrements de name si je trouve une occurrence de name dans label de tb2 OU comments de tb3 ?
Je sais dire si ca se trouve dans tb2 et tb3 par la multiplications des INNER JOIN mais la condition 
|
|
Cette discussion est classée dans : tables, chercher, jointure, t3, occurrences
Répondre à ce message
Sujets en rapport avec ce message
jointure et occurences multiples [ par lemoko ]
bonjour, j'ai 4 tables, la principale: DOCUMENT (principale) ID, nom COMMENTAIREperso (incrémentée) ID, texte2 COMMENTAIREgroupe (incrémentée) ID,
Jointure [ par Aaron ]
Bonjour/bonsoir à toutes et à tous,J'ai un petit problème en ce qui concerne une jointure. J'ai plusieurs tables 'USERS', BUILD' et 'MAILS' dans lesqu
requete sur 3 tables [ par Ma2004 ]
Bonjour,Je dispose de trois tables A, B et C.A: idA,nom,prenomB: idB,lieu,distanceC: idC,idA,idB,tempsidA clé primaire unique de AidB clé primaire uni
Requête SQL sur 3 tables [ par phileuf ]
Bonjour,Cela fait quelques jours que je me creuse la tête avec une requête trop dure pour moi...J'ai trois tables:- albums : avec notamment les champs
ACCESS SQL ou VBA [ par benjy94 ]
Bonjour,Je débute sur ACCESS et me demande quel est la solution la plus rapide pour mon petit probléme SQL ou VBA?Probleme de base:Des données dépassa
Comparaison de temps d'execution par rapport à la structure d'une table [ par hasen ]
Amis du jour, bonjour!Je m'explique, car j'ai l'impression que mon titre n'est pas clair... J'ai une base de données Access avec 2 très grosses tables
classer les valeurs de deux tables par date ? [ par babbleshit ]
Bonjour, Dans le but de réaliser un planning de sorties, je souhaiterai classer deux tables ensemble par dates de manière à obtenir un résultat dans l
Relation entre deux tables (dates [ par fzf ]
Bonjour à tous,Je crée une base de donnée, je ne comprend pas pourquoi access ne veut pas me créer ma jointure entre deux lorsque c'est des dates.Je p
jointure triple [ par petitnounoursjoyeux ]
Bonjour tout le monde, je galère depuis un bon moment, j'ai été voir divers forums et tuto, mais pas moyen de faire cette requete de #&#$!#% en gros :
Suppression dans deux tables [ par MissCile ]
Hello!J'ai trois tables : Employés (NomE, prenomE, n°employeE,adresse,statut)Caissiers ( N°employeC,n°caisse)Reassortisseurs (N° employeR, Ndepartemen
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|