gpt4 book ai didi

java - 如何在 SQL (JPA) 中使用带有 IN 运算符的嵌套 SELECT 语句?

转载 作者:行者123 更新时间:2023-12-01 19:02:15 25 4
gpt4 key购买 nike

我想在我的 java 类中使用以下 SQL 查询:

SELECT * 
FROM table1
WHERE attribute1 IN (
SELECT attribute1
FROM table2
WHERE attribute2 = c
)

这里table1table2是两个具有公共(public)列attribute1的实体。

如何以 table1 类型的列表形式获取此查询的结果?

最佳答案

您无法获得 table1 类型列表的结果。表是列的集合。 Java 列表只能包含一列的集合。想象一下table1包含 5 列不同数据类型(如 INTEGER、VARCHAR2、INTEGER、VARCHAR2、VARCHAR2)。您的查询将返回 ResultSet包含所有这些值。现在,您期望一个简单的列表来存储所有这些值。这是不正确的。如果您想存储特定列的所有值,则可以如下所示进行操作。

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM table1 WHERE attribute1 IN (SELECT attribute1 FROM table2 WHERE attribute2 = c)");
List<String> attr = new ArrayList<String>();

while (rs.next()) {
attr.add(rs.getString("attribute1"));
}

如果你想获取不同列的值,那么使用rs.getXXX("<column_name");获取其详细信息。注意:根据列的数据类型将 getXXX 替换为适当的方法。例如,getString() 用于 VARCHAR,getInt() 用于 INTEGER 等。

关于java - 如何在 SQL (JPA) 中使用带有 IN 运算符的嵌套 SELECT 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59618174/

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