Soustraire deux tables

Soustraire deux tables - SQL/NoSQL - Programmation

Marsh Posté le 14-04-2011 à 15:49:25    

Salut tout le monde,
 
Je m'exerce à utiliser access 2003 pendant mon stage, mais je suis ultra novice en la matière. Je sais, access 2003 c'est vieux...
Voilà mon problème. Pour simplifier, j'ai une table avec que des numéros de commune. Mais j'ai besoin d'avoir qu'une partie de ces communes. J'ai donc créé une autre table avec les communes que je ne voulais pas. Maintenant, j'aimerais soustraire les deux tables pour ne garder que les communes de la première table qui m'intéressent.
 
Comment pourrais-je faire ?
 
Merci beaucoup !
 
P.S.1 : on m'a dit d'utiliser "minus" mais ça n'existe pas dans access 2003...
P.S.2 : et les autres personnes du stage n'utilisent pas access mais c'est tout ce que j'ai pour l'instant.

Reply

Marsh Posté le 14-04-2011 à 15:49:25   

Reply

Marsh Posté le 14-04-2011 à 16:09:15    

à la brute? Genre  :

 
Code :
  1. DELETE FROM table_originelle
  2. WHERE identifiant IN (SELECT identifiant FROM table_indésirables)
 

:??:


Message édité par skeye le 14-04-2011 à 16:09:29

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-04-2011 à 16:10:23    

(mais bon je vois pas vachement l'intérêt, en général on aime bien avoir des tables de référence complètes...? :??:)


Message édité par skeye le 14-04-2011 à 16:11:01

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-04-2011 à 16:43:01    

Oui, mais j'aimerais effectuer une sélection de la table d'origine pour ne pas avoir de biais dans le traitement statistique que je vais faire dessus après. C'est pour créer une nouvelle table avec juste les données dont j'ai besoin. Ton code supprime pour de bon des lignes de la table ou les enlève juste pour la requête ?
 
Merci à toi skeye pour ta réponse

Reply

Marsh Posté le 14-04-2011 à 17:08:32    

ça les enlève de la table!!!
Si tu veux juste les ignorer dans une requête rien à voir!!


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-04-2011 à 17:39:39    

skeye a écrit :

ça les enlève de la table!!!
Si tu veux juste les ignorer dans une requête rien à voir!!


 Donc j'ai bien fait de ne pas essayer ! Et pour les ignorer il faut faire comment ?

Reply

Marsh Posté le 14-04-2011 à 17:51:28    

Montre la requête dans laquelle tu veux les enlever.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-04-2011 à 20:26:49    

Tu veux dire les tables ? Pour l'instant j'ai pas de requête.
Et comment je te les montre ?
En gros dans la première table (celle où il a trop d'infos) il y a :
 
Provenance des patates  |  Nombre de kilomètre effectué
2256                                 5
78965                               514
93056                               210
 
Mais il y a certaine provenance que je ne veux pas (pour une raison quelconque). J'ai donc fait une table avec les provenances non voulues :
 
Provenance de patate         | nombre de kilomètre effectué
93056                                  210
 
Et maintenant je voudrais donc soustraire la première table par la deuxième.
 
Si tu sais comment faire ça serait super !

Reply

Marsh Posté le 14-04-2011 à 21:43:27    

Mais tu veux quoi en sortie? Le contenu brut de la première table?
C'est pas bien compliqué...la solution la plus simple étant d'utiliser "not in", je pense.


Message édité par skeye le 14-04-2011 à 21:43:35

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 15-04-2011 à 07:43:19    

Ca devrai te donner ce que tu cherches:

Code :
  1. SELECT a.*
  2. FROM table_originelle a
  3.    LEFT JOIN table_indesirable b ON a.[Provenance de patate] = b.[Provenance de patate]
  4. WHERE b.[Provenance de Patate] IS NULL

Reply

Marsh Posté le 15-04-2011 à 07:43:19   

Reply

Marsh Posté le 15-04-2011 à 08:46:52    

ça c'est une solution qu'il risquait de ne pas comprendre, et surtout ne pas trouver tout seul, d'où ma suggestion du not in...[:joce]

Message cité 1 fois
Message édité par skeye le 15-04-2011 à 08:47:11

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 15-04-2011 à 09:12:54    

Tu pourrais expliciter le not in ?
Je vais essayer ce que me propose Oliiii en attendant.

Reply

Marsh Posté le 15-04-2011 à 09:17:05    

alexis23 a écrit :

Tu pourrais expliciter le not in ?
Je vais essayer ce que me propose Oliiii en attendant.


Il y a pas grand chose à expliciter...j'imagine que tu as quand même quelques bases en SQL, non?[:autobot]
"NOT IN" te permet de faire exactement ce que ça dit...tu cherches les enregistrements de ta table originelle qui ne sont "PAS DANS" la table des "indésirables", non?:o


Message édité par skeye le 15-04-2011 à 09:17:13

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 15-04-2011 à 09:21:03    

En fait j'ai commencé à utiliser access mardi et l'interface graphique suffisait jusqu'ici, donc on peut dire que je n'ai pas de base en SQL. C'est abusé qu'on puisse pas faire ça avec l'interface graphique, c'est un peu de la daube quand même :s. 2003 c'est pas si vieux quand même...

Reply

Marsh Posté le 15-04-2011 à 09:22:33    

D'ailleurs si vous avez un logiciel libre pour faire des requêtes SQL avec une interface graphique je suis preneur !

Reply

Marsh Posté le 15-04-2011 à 09:33:11    

J'y suis arrivé avec NOT IN ! J'en ai bien chié mais c'est bon ! J'apprends le SQL n'importe comment mais bon, du moment que ça marche. Bon je suis pas près de faire des supers trucs mais je ferai avec ^^.
Par contre je suis toujours preneur d'un logiciel libre ;-).
 
Merci à vous pour vos conseils.

Reply

Marsh Posté le 15-04-2011 à 11:04:31    

skeye a écrit :

ça c'est une solution qu'il risquait de ne pas comprendre, et surtout ne pas trouver tout seul, d'où ma suggestion du not in...[:joce]


C'est vrai... ca m'apprendra a lire les post en diagonale  :lol:  
 
Sinon pour apprendre le SQL tu peux essayer un sql server express (avec le management studio express) qui est gratuit.
Où tu peux faire des query de facon graphique mais aussi apprendre le SQL en dessous et pour finir faire tout le SQL toi meme.
 
Si tu veux vraiment du libre tu peux jetter un coup d'oeuil du coté MySQL, mais la il faudra que quelqu'un d'autre te donne les info parceque j'y connais rien :)

Reply

Marsh Posté le 15-04-2011 à 11:43:14    

Je ne savais pas que MySQL était libre...
Merci pour tout ! Salut !

Reply

Marsh Posté le 15-04-2011 à 11:53:22    

alexis23 a écrit :

J'y suis arrivé avec NOT IN ! J'en ai bien chié mais c'est bon ! J'apprends le SQL n'importe comment mais bon, du moment que ça marche. Bon je suis pas près de faire des supers trucs mais je ferai avec ^^.
Par contre je suis toujours preneur d'un logiciel libre ;-).
 
Merci à vous pour vos conseils.


 
Ben mon vieux, si t'en a chié pour ça, ça promet pour la suite  :ouch: Je pense qu'avant tout, acheter un livre sur le SQL ou consulter des tutos dessus me paraît plus qu'urgent :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 15-04-2011 à 11:55:41    

alexis23 a écrit :

Je ne savais pas que MySQL était libre...
Merci pour tout ! Salut !


 
C'est en licence GPL et pour l'ihm "graphique", y'a phpmyadmin (ihm web) ou MySQLQueryBrowser (client lourd). Mais concernant le sql, ça ne permet que de taper à la main les requêtes, c'est pas comme access qui te masque le sql généré (ce qui n'est pas une bonne chose en général)...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 15-04-2011 à 20:30:07    

rufo a écrit :


 
Ben mon vieux, si t'en a chié pour ça, ça promet pour la suite  :ouch: Je pense qu'avant tout, acheter un livre sur le SQL ou consulter des tutos dessus me paraît plus qu'urgent :/


 
J'ai fait des trucs simples où l'interface graphique suffisait jusque là, et je 'navais jamais vu de requête SQL de ma vie. Après, j'en aurai pas besoin outre mesure donc si c'est  le cas j'apprendrai le langage mais sinon ça me suffira.
Je  code pas en PHP, je fais que des trucs basiques pour faire ensuite du traitement statistique et des cartes sous mapinfo donc bon, pas besoin d'être une brute...
 
Bon, je ne pensais pas me prendre ce genre de remarque. Bref, salut !

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed