banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#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"  sadsad

Hors ligne

 

#2 Tue 06 March 2007 16:16

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

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 sad
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

Florent
Participant actif
Lieu: Nantes
Date d'inscription: 5 Sep 2005
Messages: 86
Site web

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 smile) 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!!! sad

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 smile

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

 

Pied de page des forums

Powered by FluxBB