#1 Wed 14 May 2008 15:33
- sarahmil
- Participant actif
- Date d'inscription: 2 Oct 2005
- Messages: 56
selection entre deux tables
Bonjour,
Je dois comparer deux tables contenant chacunes des "équipements"
Si des équipements se trouvent dans la table 1 et non dans la table 2 cela signifie qu'ils n'existent plus
Si des équipements se trouvent dans la table 2 et non dans la table 1 cela signifie qu'ils ont été créé
J'aimerais traduire ça en MapBasic...mais j'ai un peu de mal
J'ai essayé:
Select * from table1,table2 where not(table1.Id=table2.Id) mais étant donné que si les identifiants ne sont pas égaux cela veut dire qu'ils n'existent pas dans l'autre table, et bien ma requête ne fonctionne pas!
J'aurais pu selectionner les identifiant identiques et inverser la selection, mais je n'ai pas trouvé comment traduire "inverser la selection" en MapBasic!
Merci pour votre aide!
Hors ligne
#2 Wed 14 May 2008 16:52
- Fabius
- Participant actif
- Date d'inscription: 19 Mar 2008
- Messages: 130
Re: selection entre deux tables
Je pense que tu devrais passer par deux listes remplit chacune par un des champs et tester si pour un element compris entre i et ubound(liste1) il y'a une correspondance dans la seconde liste et vice versa avec un afficahge de message pour l'un et l'autre des cas...
En tout cas c'est comme ca que je vois les choses mais pour etre plus précis par quoi sont caractérisé tes équipements ? un code ? un nom unique ou rebarbatif ?
Hors ligne
#3 Wed 14 May 2008 16:58
- greg-gwened
- Participant actif
- Lieu: Vannes
- Date d'inscription: 4 Oct 2007
- Messages: 148
Re: selection entre deux tables
Peut etre quelque chose du genre:
Pour les equipements qui n'existe plus:
SELECT table1.* FROM table1 WHERE table1.id NOT IN (SELECT id FROM table2)
Pour les équipements créés:
SELECT table2.* FROM table2 WHERE table2.id NOT IN (SELECT id FROM table1)
Hors ligne
#4 Wed 14 May 2008 17:35
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: selection entre deux tables
Précision pour corriger légèrement la syntaxe de greg-gwened (et à la condition que les champ id soit bien un identifiant unique)
Pour les équipements qui n'existent plus:
SELECT * FROM table1 WHERE NOT id IN (SELECT id FROM table2)
Pour les équipements créés:
SELECT * FROM table2 WHERE NOT id IN (SELECT id FROM table1)
Hors ligne
#5 Thu 15 May 2008 09:01
- sarahmil
- Participant actif
- Date d'inscription: 2 Oct 2005
- Messages: 56
Re: selection entre deux tables
OUIIIIIIIII ces formules marchent très bien!
Merci beaucoup
Sarah
Hors ligne