У меня есть этот запрос в функции pl / pgsql.Я использую PostgreSQL 10.
FOR firstrecord IN
EXECUTE format(
'SELECT vans.id as vid, adidas.id as aid,
vans.color, adidas.color, vans.type, adidas.type
FROM shoes
FULL JOIN adidas ON shoes.id = adidas.id
FULL JOIN shoes ON shoes.id=vans.id
WHERE adidas.code = 607 and vans.code = 304 ' )
USING acode , vcode
END LOOP;
Это работает, но я бы хотел установить SELECT DISTINCT
на vans.id
И adidas.id
.Это самое близкое, что у меня есть
FOR firstrecord IN
EXECUTE format(
'SELECT DISTINCT ON (adidas.id) vans.id as vid, adidas.id as aid,
vans.color, adidas.color, vans.type, adidas.type
FROM shoes
FULL JOIN adidas ON shoes.id = adidas.id
FULL JOIN shoes ON shoes.id=vans.id
WHERE adidas.code = 607 and vans.code = 304
ORDER BY adidas.id,vans.id' )
USING acode , vcode
END LOOP;
Если я попытаюсь сделать что-то вроде SELECT DISTINCT ON (adidas.id, vans.id)
, то DISTINCT
не будет работать, я получу дубликаты в результате.
Если я сделаю SELECT DISTINCT vans.id as vid, adidas.id as aid
, все равно DISTINCT
не работает, в результате я получаю дубликаты.
Как мне это исправить?
Спасибо