PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 14/11/2013 12:02:54

Recherche de valeurs entre deux tables

Bonjour,


J'essaie de ressortir les valeurs d'une table a qui ne se trouvent pas dans une table b :

CREATE TABLE table_a (gid varchar(2)) ;
INSERT INTO table_a (gid) VALUES ('01', '02', '03', '04', '05') ;
CREATE TABLE table_b (gid varchar(2)) ;
INSERT INTO table_b (gid) VALUES ('06', '02', '07', '08', '09') ;

La requête suivante me renvoie les valeurs 01, 02, 03, 04 et 05 alors que la valeur 02 se trouve dans les deux tables...

SELECT a.gid FROM table_a a, table_b b WHERE a.gid NOT IN (b.gid) ;

Je souhaiterais récupérer seulement les valeurs 01, 03, 04 et 05 qui sont bien dans la table_a mais pas dans la table_b.


Je ne vois vraiment pas ce qui cloche...



Merci pour votre aide !


Thomas

Hors ligne

#2 14/11/2013 12:12:00

rjuju
Administrateur

Re : Recherche de valeurs entre deux tables

Bonjour,

une requête de ce genre devrait marcher :

SELECT *
FROM table_a a
LEFT JOIN table_b b USING (gid)
WHERE b.gid IS NULL;

Hors ligne

#3 14/11/2013 13:02:53

Re : Recherche de valeurs entre deux tables

Bonjour,


Merci en effet ça marche mieux... J'avais aussi trouvé ça entre temps :

SELECT gid FROM table_a WHERE gid NOT IN (SELECT gid FROM table_b) ;

Thomas

Hors ligne

Pied de page des forums