gpt4 book ai didi

postgresql - SQL : Adding Aliases to a column value

转载 作者:行者123 更新时间:2023-11-29 13:27:16 25 4
gpt4 key购买 nike

我有 2 个表,一个是一组真实姓名,另一个是这些人的别名集合。我想从实名表中选择,但包括实名中每个值的别名表中的所有值。我该怎么做?

CREATE TABLE PEOPLE(
ID SERIAL PRIMARY KEY,
NAME VARCHAR(64)
);
INSERT INTO PEOPLE(NAME)VALUES('BRUCE'),('CLARK'),('STEVE');

CREATE TABLE ALIASES(
ID SERIAL PRIMARY KEY,
PID INTEGER REFERENCES PEOPLE(ID),
NAME VARCHAR(64)
);
INSERT INTO ALIASES(PID,NAME)VALUES
(1,'BATMAN'),(2,'SUPERMAN'),(3,'CAPTAIN AMERICA'),(1,'THE DARK KNIGHT');

我希望结果如下所示,以便我可以对该列值进行全文搜索。

> SELECT NAME FROM PEOPLEALIASED;
NAME
-----
BRUCE BATMAN THE DARK KNIGHT
CLARK SUPERMAN
STEVE CAPTAIN AMERICA

最佳答案

您可以使用 string_agg() 来做到这一点:

select  p.name || string_agg(a.name, ' ')
from people p
join aliases a
on p.id = a.pid
group by
p.name

Example at SQL Fiddle.

关于postgresql - SQL : Adding Aliases to a column value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31502134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com