【发布时间】:2017-02-17 04:39:07
【问题描述】:
我在更新行时遇到问题。我在一个表中有行“count”并引用另一个表“population_id”,并希望使用 select 更新此行“count”,该表返回我们的值(count(client_id),population_id) 有办法做到这一点,最简单的方法是什么?
CREATE OR REPLACE FUNCTION zonning.set_count_population(label text)
RETURNS void AS
$BODY$declare
BEGIN
UPDATE zonning.populations2 SET count =
(SELECT count(c.client_id)
FROM clients.clients c
JOIN clients.phone_numbers pn ON c.client_id = pn.client_id
JOIN clients.phone_numbers_labels pnl ON pn.phone_number_id = pnl.phone_number_id
JOIN clients.labels l ON pnl.label_id = l.label_id
WHERE l.label_name = label)
WHERE population_id = "How i can get id from select?";
END;$BODY$ `
LANGUAGE plpgsql VOLATILE
COST 100;
【问题讨论】:
-
How i can get id from select?...您指的是哪个值? -
你如何在 UI 中更新这个我的意思是传递 QueryString 或其他任何东西?
-
在这种情况下,select 用作标量子查询(实际上是一个 very 小表,希望正好是一个值)顺便说一句,
count是列的错误选择名称,因为它是一个关键字。 BTW2:"How i can get id from select?":字符串文字应该用单引号引起来,双引号用于标识符。
标签: mysql sql postgresql select