Tenho as seguintes tabelas e os seguintes registros:
--Tabela Produto 
CREATE SEQUENCE produto_pro_codigo_seq; 
CREATE TABLE produto 
( 
pro_codigo INTEGER DEFAULT NEXTVAL('produto_pro_codigo_seq') NOT NULL, 
pro_descricao CHARACTER VARYING(100) NOT NULL, 
CONSTRAINT pk_produto PRIMARY KEY (pro_codigo) 
); 
--Tabela Código de Barras 
CREATE SEQUENCE codigo_barras_cba_codigo_seq; 
CREATE TABLE codigo_barras 
( 
cba_codigo INTEGER DEFAULT NEXTVAL('codigo_barras_cba_codigo_seq') NOT NULL, 
pro_codigo INTEGER NOT NULL, 
cba_codigo_barras CHARACTER VARYING(20) NOT NULL, 
CONSTRAINT pk_codigo_barras PRIMARY KEY (cba_codigo), 
CONSTRAINT fk_codigo_barras_produto FOREIGN KEY (pro_codigo) REFERENCES produto (pro_codigo) 
); 
--Registros 
INSERT INTO produto (pro_descricao) VALUES ('MEMÓRIA'); 
INSERT INTO produto (pro_descricao) VALUES ('PLACA MÃE'); 
INSERT INTO produto (pro_descricao) VALUES ('PLACA DE VIDEO'); 
INSERT INTO codigo_barras (pro_codigo, cba_codigo_barras) VALUES (1, '000010'); 
INSERT INTO codigo_barras (pro_codigo, cba_codigo_barras) VALUES (1, '000011'); 
INSERT INTO codigo_barras (pro_codigo, cba_codigo_barras) VALUES (2, '000020'); 
INSERT INTO codigo_barras (pro_codigo, cba_codigo_barras) VALUES (2, '000021'); 
INSERT INTO codigo_barras (pro_codigo, cba_codigo_barras) VALUES (3, '000030'); 
INSERT INTO codigo_barras (pro_codigo, cba_codigo_barras) VALUES (3, '000031'); 
INSERT INTO codigo_barras (pro_codigo, cba_codigo_barras) VALUES (3, '000032'); Agora preciso montar uma consulta na tabela ‘produto’, buscando todos produtos que iniciam com a letra ‘P’, mas não quero retornar registros com o mesmo código do produto. Nessa consulta preciso trazer os campos: produto.pro_codigo, produto.pro_descricao e codigo_barras.cba_codigo_barras
Consulta que criei:
SELECT produto.pro_codigo, produto.pro_descricao, codigo_barras.cba_codigo_barras 
FROM produto 
INNER JOIN codigo_barras ON (produto.pro_codigo = codigo_barras.pro_codigo) 
WHERE produto.pro_descricao ILIKE 'P%' 
ORDER BY produto.pro_codigo O resultado é:
1 - pro_codigo: 2 - pro_descricao: PLACA MÃE - cba_codigo_barras: 000020
2 - pro_codigo: 2 - pro_descricao: PLACA MÃE - cba_codigo_barras: 000021
3 - pro_codigo: 3 - pro_descricao: PLACA DE VIDEO - cba_codigo_barras: 000030
4 - pro_codigo: 3 - pro_descricao: PLACA DE VIDEO - cba_codigo_barras: 000031
5 - pro_codigo: 3 - pro_descricao: PLACA DE VIDEO - cba_codigo_barras: 000032
Como faço para que retorne apenas o registro 1 e o registro 3? (retornar apenas o primeiro encontrado, ignorar os outros registros contido com o mesmo pro_codigo)