0
我創建一個存儲過程是這樣的:Postgres存儲過程問題 - 我該如何解決這個問題?
CREATE FUNCTION get_components(_given_user_id integer) RETURNS TABLE (id integer, name varchar, active boolean, parent integer, type smallint, description varchar, email varchar, user_id integer, component_id integer, flag smallint) AS $body$
BEGIN
RETURN QUERY SELECT s.* FROM st_components s LEFT JOIN (SELECT a.* FROM st_users_components_perms a WHERE a.user_id=_given_user_id) ON a.component_id=s.id ORDER BY name;
END;
$body$ LANGUAGE plpgsql;
的問題是,ON a.component_id = s.id ORDER BY名不起作用,因爲a.component_id超出範圍在這一點上。有沒有辦法在查詢之外聲明「a」爲st_users_components_perms?這是如何解決的?非常感謝您的任何見解!
歡迎來到SO。如果你不打算以任何方式使用連接表,那麼'LEFT JOIN'沒有意義。如果你的職能是真正的交易,聲明也可以簡化。除此之外,請用換行符格式化。很難閱讀這種方式。 –