Inner Join com Array

PostgreSQL

18/02/2017

Pessoal, boa noite

Estou desenvolvendo um trabalho do curso em que preciso usar um inner join "Integer[] = Integer". Alguém consegue me ajudar?

CREATE TABLE clientes
(
    id INTEGER DEFAULT nextval('clientes_id_seq'::regclass) PRIMARY KEY NOT NULL,
    nome TEXT[] NOT NULL,
    endereco TEXT[] NOT NULL,
    data_cad DATE NOT NULL,
    ativo BOOLEAN,
    email VARCHAR(100),
    rg VARCHAR(12),
    cpf VARCHAR(15),
    id_bairro INTEGER[] NOT NULL,
    ddd INTEGER[] NOT NULL,
    telefone TEXT[] NOT NULL,
    telefonedescricao TEXT[],
    id_operador INTEGER,
    data_nasc DATE
);



CREATE TABLE bairros
(
    id INTEGER DEFAULT nextval('bairros_id_seq'::regclass) PRIMARY KEY NOT NULL,
    nome VARCHAR(50) NOT NULL,
    id_cidade INTEGER NOT NULL,
    ativo BOOLEAN NOT NULL
);


Instrução SQL

SELECT clientes.id as id, clientes.nome as nome,
          clientes.endereco as endereco, (bairros.nome) as bairro, clientes.telefone as telefone,
          clientes.ativo as ativo FROM clientes
          INNER JOIN bairros on (clientes.id_bairro) = bairros.id order by id DESC
João Natividade

João Natividade

Curtidas 0

Respostas

Aline Bianchini

Aline Bianchini

18/02/2017

Olá João,

Td bem?
Você poderia explicar melhor o que precisa? No caso do seu exemplo, pelo que entendi, você tem uma entidade cliente e uma bairro, e quer listar os clientes e o bairro correspondente certo?
GOSTEI 0
João Natividade

João Natividade

18/02/2017

Ah, já consegui resolver

SELECT clientes.id as id, clientes.nome as nome,
clientes.endereco as endereco, (bairros.nome) as bairro, clientes.telefone as telefone,
clientes.ativo as ativo FROM clientes
INNER JOIN bairros on bairros.id = any(clientes.id_bairro::INTEGER[]) order by id DESC
GOSTEI 0
POSTAR