По всей видимости проблема в том, что поздапрос, который сам по себе работает, возвращает несколько строк, которые неизвестно как обрабатывать - грубо говоря в общем случае не ясно что к ним применить - то-ли and то-ли or то-ли еще что. Я бы для начала переписал как-то так:
Код: Выделить всё
SELECT dumps.land_category
FROM dumps
WHERE EXISTS (
SELECT * FROM water_line
WHERE ST_Intersects(dumps.geom, ST_Buffer(water_line.geom, 100, 'endcap=flat join=round'))
)
Если же подзапрос возвращает одну строку, то проблема вот тут:
если water_line нужен только для позапроса, то тут он лишний. Если не только - то нужно использовать JOIN или так:
Код: Выделить всё
SELECT dumps.land_category, water_geom.foo, water_geom.bar
FROM dumps, water_line
WHERE ST_Intersects (dumps.geom, ST_Buffer (water_line.geom, 100, 'endcap=flat join=round'))