#1 Tue 06 March 2007 16:09
- Roch
- Participant occasionnel
- Date d'inscription: 3 Mar 2006
- Messages: 17
[MI 8.x] Jointure : RIGHT OUTER,LEFT OUTER, FULL OUTER
J'utilise MapInfo 8 . Par SQL, comment puisse-je faire des jointures de tables pouvant remplir les conditions: "RIGHT OUTER" ou "LEFT OUTER" , ou "FULL OUTER"
Hors ligne
#2 Tue 06 March 2007 16:16
Re: [MI 8.x] Jointure : RIGHT OUTER,LEFT OUTER, FULL OUTER
Hello,
Une piste sur le site de Jacques Paris : http://www.paris-pc-gis.com/MI_Enviro/M … rt0_A4.zip
Geomatiquement,
Robin.
Hors ligne
#3 Tue 06 March 2007 17:38
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: [MI 8.x] Jointure : RIGHT OUTER,LEFT OUTER, FULL OUTER
Oops, ça sent son Access ça, non??
Ces conditions ne sont pas du SQL "standard"...même si le S de SQL veut bien dire standard, Microsoft a pris bien des libertés avec son SQL
MI utilisant un SQL standard (voire même "intégriste")...ben...on ne peut pas!!
Mais soit en utilisant Access pour faire une requête création de table, soit en trouvant une astuce pour obtenir le même résultat avec MI sans sortir du standard, la plupart. du temps on y arrive
Bon courage
Hors ligne
#4 Tue 06 March 2007 18:36
- Roch
- Participant occasionnel
- Date d'inscription: 3 Mar 2006
- Messages: 17
Re: [MI 8.x] Jointure : RIGHT OUTER,LEFT OUTER, FULL OUTER
je ne vois toujours pas la solution vu que je ne suis pas programmeur:(
Hors ligne
#5 Tue 06 March 2007 19:05
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: [MI 8.x] Jointure : RIGHT OUTER,LEFT OUTER, FULL OUTER
Vérification faite, ça n'est pas du Access..désolé
Pouvez vous préciser ce que ces 3 conditions sont censées signifier (en français:)) ??
Hors ligne
#6 Tue 06 March 2007 19:20
- Roch
- Participant occasionnel
- Date d'inscription: 3 Mar 2006
- Messages: 17
Re: [MI 8.x] Jointure : RIGHT OUTER,LEFT OUTER, FULL OUTER
1er cas:
Il s'agit de faire une jointure entre deux tables de facon que les elements qui appartiennent a la table A et ne sont pas dans le table B apparaissent dans la table jointure avec des lignes d'enregistrements vide du coté ou les elements sont manquantes dans la table B tout en conservant les element de la table A, et vice versa pour la table B (une jointure qui ne sera pas simplement un produit cartesien des deux tables)
2e cas:
une autre jointure qui ne prendra en compte que les elements qui sont identiques dans les deux tables A et B Ex: Table A (a, b,c..) Table B (e, a, c, f, g)
la jointure donnera table D (a*a, c*c)
Hors ligne
#7 Tue 06 March 2007 20:00
Re: [MI 8.x] Jointure : RIGHT OUTER,LEFT OUTER, FULL OUTER
Bonsoir,
A ma connaissance MI ne gère pas ce genre de clause. Si vous afficher la fenêtre MapBasic, vous vous rentrez compte qu'il ne gère que des jointures basées sur la clause WHERE et non les INNER JOIN... (on est un loin de toutes les possibilités offertes par un SGBD performant).
Pour effectuer des requêtes de ce type avec MI, il faut ruser... et encore. Exemple, pour obtenir une vue ou l'on a tous les enregistrements de la table A et seulement ceux de la table B jointifs (cad INNER JOIN LEFT) passez par une colonne temporaire dans A et appliquez un update de cette colonne. Je sais que ce n'est pas une sélection (SELECT) mais une requête UPDATE mais c'est à ma connaissance le seul moyen...
Bon courage
Florent
Hors ligne
#8 Tue 06 March 2007 21:58
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: [MI 8.x] Jointure : RIGHT OUTER,LEFT OUTER, FULL OUTER
Sur des tables de données...je ne vois pas (mais je cherche ) d'autre solution que l'enregistrement de requêtes "classiques" intermédiaires puis l'ajout des tables entre elles
Mais sur des tables graphiques de polygones (et leurs attributs) MI sait faire le 1er cas par une Union et le 2e cas par une Intersection
cf. les résultats de cet outil
Hors ligne
#9 Wed 07 March 2007 17:55
- Roch
- Participant occasionnel
- Date d'inscription: 3 Mar 2006
- Messages: 17
Re: [MI 8.x] Jointure : RIGHT OUTER,LEFT OUTER, FULL OUTER
Mes tables sont justement attributaires et non graphiques!!!
Hors ligne
#10 Wed 07 March 2007 18:06
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: [MI 8.x] Jointure : RIGHT OUTER,LEFT OUTER, FULL OUTER
Alors ...désolé!!
Mais, à sa décharge, MapInfo est un outil SIG, pas un SGBDR
Son truc c'est les tables "à plat" ...et les tables graphiques
Sinon il cause assez facilement avec les SGBDR et récupère volontiers leurs travaux
Hors ligne
#11 Thu 08 March 2007 13:08
- Garadi
- Juste Inscrit !
- Date d'inscription: 26 Feb 2007
- Messages: 2
Re: [MI 8.x] Jointure : RIGHT OUTER,LEFT OUTER, FULL OUTER
Bonjour,
Voici peut être un moyen de le faire avec du SQL Standard. Dans le cas qui suit nous avons deux tables T1 et T2 avec respectivement deux identifiants ID_T1 et ID_T1. La requête suivante permet de restituer les enregistrments de la table T1 qui ne sont pas présents dans la table T2 :
Select ID_T1
From T1
Where ID_T1 not in (select ID_T2 From T2)
J'espère que cela reponde à votre besoin
Cordialement
A. Garadi
Hors ligne