0
は今、私は、次の機能を持っている:返された結果に対してjoinを使用するにはどうしたらいいですか?
CREATE OR REPLACE FUNCTION set_city(_city_id bigint, _country_id integer, _lat float, lon float) RETURNS geo_cities LANGUAGE plpgsql as $$
DECLARE
city_coords Geometry := ST_SetSrid(ST_MakePoint(_lon, _lat), 3395);
result record;
BEGIN
IF EXISTS (SELECT 1 FROM geo_cities gc WHERE gc.id = _city_id)
THEN
UPDATE geo_cities
SET coords = city_coords, country_id = _country_id
WHERE id = _city_id
RETURNING * INTO result;
ELSE
INSERT INTO geo_cities(id, country_id, coords)
VALUES (_city_id, _country_id, city_coords)
RETURNING * INTO result;
END IF;
RETURN result;
END;
$$
私は私の結果と参加使いたいです。それは私が意味するものです:
...
RETURNING
id as city_id,
ST_X(coords) as lon,
INNER JOIN geo_countries as gc ON gc.id = id
...
私はそれを行うことはできますか?
2番目の機能を作成する必要があるようです。悲しいです... – Vitaly
なぜ2番目の関数を作成する必要がありますか?何のために? – joanolo
私はこの質問を直接必要としないので、私にとってこの必要があります。そのために私はこの質問を作成しました。なぜなら、私はこの機能を1つの機能でどのように行うことができるのか理解できないからです。今私は第二の機能を持っていますが、それはあまり良くないと思います...あなたのアドバイスのおかげでいずれにしても – Vitaly