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 Re : PSQL » Requête qui ne me donne pas toutes les lignes de ma table » 13/07/2017 17:43:19

Merci beaucoup, cela fonctionne
Vous me rendez un grand service

#2 Re : PSQL » Requête qui ne me donne pas toutes les lignes de ma table » 13/07/2017 10:56:36

Merci beaucoup pour votre explication très clair.
Pourriez vous m'indiquer comment l'écrire en LEFT JOIN?

Merci

#3 PSQL » Requête qui ne me donne pas toutes les lignes de ma table » 11/07/2017 14:41:09

jydee
Réponses : 4

Voici ma requete

Code :

CREATE TABLE IF NOT EXISTS
france_metropolitaine_ed17.n_pne_bati_indifferencie_adresse_s_v2
AS

SELECT
   n_bdt_bati_indifferencie_s_000.prec_plani ,
   n_bdt_bati_indifferencie_s_000.prec_alti ,
   n_bdt_bati_indifferencie_s_000.origin_bat ,
   n_bdt_bati_indifferencie_s_000.hauteur ,
   n_bdt_bati_indifferencie_s_000.z_min ,
   n_bdt_bati_indifferencie_s_000.z_max ,
   n_bdt_bati_indifferencie_s_000.nature ,

   n_apr_bati_l_000.surf_bat,
   n_apr_bati_l_000.type_bat,

   n_apr_adresse_p_000.id as id_adr ,
   n_apr_adresse_p_000.id_tr ,
   n_apr_adresse_p_000.methode,
   n_apr_adresse_p_000.numero ,
   n_apr_adresse_p_000.rep ,
   n_apr_adresse_p_000.compl ,
   n_apr_adresse_p_000.nom_voie ,
   n_apr_adresse_p_000.alias ,
   n_apr_adresse_p_000.nom_ld ,
   n_apr_adresse_p_000.code_insee ,
   n_apr_adresse_p_000.code_post ,
   n_apr_adresse_p_000.type_loc ,
   n_apr_adresse_p_000.cote,

   n_apr_bati_l_000.geom

FROM
n_apr_adresse_p_000,
n_bdt_bati_indifferencie_s_000 LEFT JOIN n_apr_bati_l_000 ON
n_bdt_bati_indifferencie_s_000.id = n_apr_bati_l_000.id_bat

WHERE
n_apr_adresse_p_000.id = n_apr_bati_l_000.id_adr

;


avec

-- Table: n_apr_bati_l_000

-- DROP TABLE n_apr_bati_l_000;

CREATE TABLE n_apr_bati_l_000
(
  gid integer,
  id character varying(24),
  insee_com character varying(5),
  id_adr character varying(24),
  id_bat character varying(24),
  type_lien character varying(20),
  nb_adr smallint,
  nb_bati smallint,
  origin_bat character varying(8),
  type_bat character varying(25),
  surf_bat numeric,
  haut_bat smallint,
  z_min_bat double precision,
  z_max_bat double precision,
  geom geometry(MultiLineString)
)


-- Table: n_apr_adresse_p_000

-- DROP TABLE n_apr_adresse_p_000;

CREATE TABLE n_apr_adresse_p_000
(
  id character varying(24),
  id_tr character varying(24),
  methode character varying(13),
  numero smallint,
  rep character varying(9),
  compl character varying(70),
  nom_voie character varying(70),
  alias character varying(70),
  nom_ld character varying(70),
  code_insee character varying(5),
  code_post character varying(5),
  type_loc character varying(16),
  cote character varying(6),
  geom geometry(MultiLineString)


-- Table: n_bdt_bati_indifferencie_s_000

-- DROP TABLE n_bdt_bati_indifferencie_s_000;

CREATE TABLE n_bdt_bati_indifferencie_s_000
(
  id character varying(24),
  prec_plani numeric(6,1),
  prec_alti numeric(7,1),
  origin_bat character varying(8),
  hauteur smallint,
  z_min numeric(8,2),
  z_max numeric(8,2),
  geom geometry(Geometry,2154)
)




J'ai un souci au niveau du résultat de ma requête : je n'ai pas pas tous les id de n_bdt_bati_indifferencie_s_000 (n_bdt_bati_indifferencie_s_000.id)
Je voudrais avoir toutes les lignes de la colonne id de la table (n_bdt_bati_indifferencie_s_000) et cette table serait complétée par la table n_apr_bati_l_000 quand il y a des données avec le même ID (n_bdt_bati_indifferencie_s_000.id = n_apr_bati_l_000.id_bat)
Ma jointure à gauche est certainement fausse mais comment l'écrire?

Merci beaucoup

Pied de page des forums

Propulsé par FluxBB