sql – 如何在使用JDBC从多个表中进行SELECT时标识列?
发布时间:2020-12-12 06:34:46 所属栏目:MsSql教程 来源:网络整理
导读:我有两个表加入id-column,它们看起来像: +-------+| users |+----+--+---+| id | name |+----+------++-------+| posts |+-------+------+---------+| id | user_id | message |+----+---------+---------+ 现在我想选择所有帖子并包含用户名,其中包括: SEL
我有两个表加入id-column,它们看起来像:
+-------+ | users | +----+--+---+ | id | name | +----+------+ +-------+ | posts | +-------+------+---------+ | id | user_id | message | +----+---------+---------+ 现在我想选择所有帖子并包含用户名,其中包括: SELECT * FROM posts,users WHERE user_id = users.id 然后我尝试获取值: ResultSet rs = // SQL if(rs.next()) { rs.getInt("posts.id"); ... } 但是在执行rs.getInt(“posts.id”)时我得到了SQLException: java.sql.SQLException: Column 'posts.id' not found. 如何使用JDBC和JavaDB / Derby作为数据库从上面的SQL查询中获取值? 使用ResultSet检索值时,如何区分用户和posts表中的id列? 解决方法您正在尝试检索id值,但您使用“posts.id”来引用它.别您只需要列名或别名,而不是表名: ResultSet rs = // SQL if(rs.next()) { rs.getInt("id"); ... } 如果您的列名称本身是“posts.id”,它会起作用,但如果您选择更新表,我建议使用下划线(_)而不是句点. 但是我在两个表中都有一个id列,我如何区分它们? 您需要指定列别名: SELECT p.id AS post_id,p.name,u.id AS users_id,p.user_id,--redundant due to relationship,omit if possible u.message FROM POSTS p JOIN USERS u ON u.id = p.user_id …并在Java代码中引用该列别名: ResultSet rs = // SQL if(rs.next()) { rs.getInt("post_id"); ... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |