Saludos, recurro a ustedes para perdirles ayuda para generar esta instruccion que hasta ahora no me sale.
problema
tengo 2 tablas ANUNCIO y ANUNCIODET ahora en general como respuesta en la pagina web solo e deve botar un anuncio de cada uno, ahora tengo 2 filtros de busqueda que son por razocial y por distrito, si solo busco por razonsocial normal me sale anuncio(pa esta consulta si se se como devo hacer). pero cuando busco por distrito ahi esta el problema me da como resultado varios que son del mismo distrito. les explico asi
seleccioname los anuncios de la tabla anuncio donde racionsocial tenga la palabra "co" y distrito="LOS OLIVOS" Y SOLO MUESTRAME 10 REGISTROS
hice esto
SELECT anuncio.idanun,anuncio.razonsocial, SubQuery.distrito
FROM anuncio INNER JOIN (SELECT * FROM anunciodet where distrito='LOS OLIVOS' ) AS SubQuery ON anuncio.idanun= SubQuery.idanun
WHERE anuncio.razonsocial ILIKE '%co%' limit 10
resultado este
idanun,zraonsocial,distrito
1 ; "comercio" ;"LOS OLIVOS"
1 ;"comercio" ;"LOS OLIVOS"
1 ;"comercio" ;"LOS OLIVOS"
2 ;"continental" ;"LOS OLIVOS"
como ven me sale varios anuncios por que tiene varios direcion en un distrito como hago para que me filtre o mejor dicho para que me tome un registro por cada anuncio de la tabla anunciodet
algo asi INNER JOIN (SELECT top 1* FROM anunciodet where distrito='LOS OLIVOS'
e juntado las 2 tablas y trabajrle de modo estructurado pero no sale el problema esta en el top y limit,
espeor me ayuden gracias de todos modos..
aqui les dejo la base de datos resumida:
CREATE TABLE anuncio
(
idanun integer NOT NULL,
razonsocial character varying(150)
)
WITH OIDS;
CREATE TABLE anunciodet
(
idanun integer NOT NULL,
idubica integer NOT NULL,
distrito character varying(150)
)
WITH OIDS;
insert into anuncio(idanun,razonsocial) values(1,'comercio');
insert into anuncio(idanun,razonsocial) values(2,'continental');
insert into anuncio(idanun,razonsocial) values(3,'nexus2000')
insert into anunciodet(idanun,idubica,distrito) values(1,1,'LOS OLIVOS');
insert into anunciodet(idanun,idubica,distrito) values(1,2,'MIRAFLORES');
insert into anunciodet(idanun,idubica,distrito) values(1,3,'LOS OLIVOS');
insert into anunciodet(idanun,idubica,distrito) values(1,4,'LOS OLIVOS')
insert into anunciodet(idanun,idubica,distrito) values(2,1,'SURCO');
insert into anunciodet(idanun,idubica,distrito) values(2,2,'LIMA');
insert into anunciodet(idanun,idubica,distrito) values(2,3,'LOS OLIVOS')
insert into anunciodet(idanun,idubica,distrito) values(3,1,'SAN MARTIN');
insert into anunciodet(idanun,idubica,distrito) values(3,2,'CALLAO');
insert into anunciodet(idanun,idubica,distrito) values(3,3,'LA PERLA')
aqui esta la instruccion que eh estado revisando para ver si me sale el resultado
SELECT anuncio.idanun,anuncio.razonsocial, SubQuery.dir1,SubQuery.dir2
FROM anuncio INNER JOIN (SELECT * FROM anunciodet where distrito='LOS OLIVOS' limit 1 ) AS SubQuery ON anuncio.idanun= SubQuery.idanun
WHERE anuncio.razonsocial ILIKE '%co%'