Inner Join com Array

18/02/2017

0

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

Responder

Posts

23/02/2017

Aline Bianchini

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?
Responder

24/02/2017

João Natividade

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
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar