因此,我必须要加入表,但得到一个错误。
表格如下所示。模式表格:
| patternUuid|网址名称|标题|
| - ------|- ------|- ------|
| 1b3d8a0f-2bc3-4c50-a00a-6cf99335dd20|信用卡欺诈|信用卡购物|
| 04bdcd7b-d61b-45cc-b9ea-c2decc77c852|退货政策欺诈|退货政策欺诈|
成员表:
| 身份证|成员ID|patternsUuid|
| - ------|- ------|- ------|
| 1个|1个|1b3d8a0f-2bc3-4c50-a00a-6cf99335dd20|
| 第二章|第二章|1b3d8a0f-2bc3-4c50-a00a-6cf99335dd20|
| 三个|三个|04bdcd7b-d61b-45cc-b9ea-c2decc77c852|
| 四个|三个|04bdcd7b-d61b-45cc-b9ea-c2decc77c852|
我的sql给我一个错误
SELECT "patternspatternUuid", "patterns.urlName", patterns.title, json_agg(members.memberId)
FROM public.patterns
JOIN members
ON members.patternsUuid = patterns.patternUuid
GROUP BY patterns.patternUuid
错误消息:
您访问的页面不存在!ON members.patternsUuid = patterns.patternUuid ^ HINT:也许您想引用列“members.patternsUuid”。
最后,我调用这个查询,并将它和端点以及JSON中的res设置为如下所示:
"patterns": [
{
"patternUuid": "1b3d8a0f-2bc3-4c50-a00a-6cf99335dd20",
"title": "Credit Card Fraud",
"urlName": "card-fraud"
"description": "Lorem ipsum dolor sit",
"members": [
{
"memberId": 1
},
{
"memberId": 2
}
],
},
2条答案
按热度按时间o0lyfsai1#
可能你的列是使用带引号的标识符声明的,因此
members
表中列的正确名称是patternsUuid
(声明为"patternsUuid"
),这是大小写敏感的。标识符members.patternsUuid
是不带引号的,所以它等价于patternsuuid
,这与真实的名称不匹配。引用标识符也使其区分大小写,而未引用的名称总是折叠为小写。例如,标识符FOO,foo和“foo”被PostgreSQL认为是相同的,但“Foo”和“FOO”与这三个不同,并且彼此不同。(PostgreSQL中将未加引号的名称折叠为小写与SQL标准不兼容,它说,不带引号的名字应该折叠成大写。因此,根据标准,foo应该等效于“FOO”而不是“foo”。如果你想编写可移植的应用程序,建议你总是引用一个特定的名字,或者永远不要引用它。)
wgeznvg72#
所以我的查询结果是这样的,现在可以用了
谢谢你的回答,正如你所看到的,我不得不像这样在大写的列周围使用引号:members.“memberId”