gpt4 book ai didi

SQL 查询返回基于数组 PostgreSQL 中的值的结果

转载 作者:行者123 更新时间:2023-11-29 12:21:26 25 4
gpt4 key购买 nike

我有两个表,

Table1
id - BIGINT
otherKey - VARCHAR(45) <---Unique

Table2
table1ID - BIGINT

table2 中的table1ID 字段与Table1 中的id 字段的值相同。

我有一个数组,其中包含与表 2 中的 otherKey 字段对应的值。

myArray = {'key1', 'key2', 'key3'}

我正在尝试返回其 otherKey 值存在于 myArray 中的所有 Table2 行。我有:

SELECT * FROM Table2 WHERE (SELECT id FROM Table1 WHERE otherKey = ANY(myArray))

但我知道使用 '=' 意味着子查询不能返回多个结果。

任何建议都会很棒!

最佳答案

您说得对,如果您希望外部子查询匹配内部子查询中的多行,则 equals 无法胜任。

这就是他们发明 IN 的原因。

SELECT * FROM Table2 WHERE table1id IN (SELECT ...)

关于SQL 查询返回基于数组 PostgreSQL 中的值的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20614533/

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