我有一个复合型引脚:
CREATE TYPE public.pin AS
(
id uuid,
name text,
);
Run Code Online (Sandbox Code Playgroud)
和一个桌面设备:
CREATE TABLE public.devices
(
name text COLLATE pg_catalog."default" NOT NULL,
pins pin[] NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
如何编写查询以从设备表中选择 pin.name,其中 pin.id 等于已知 id?
您可以为此使用横向连接:
SELECT pin.name
FROM devices, unnest(pins) AS pin -- implicit lateral join
WHERE pin.id = '77068690-787c-431d-9a6f-bd2a069fa5a4' -- random uuid
Run Code Online (Sandbox Code Playgroud)