使用 JDBC 从多个表中进行 SELECT 时如何识别列?

2024-01-12

我在 id 列上加入了两个表,它们看起来像:

+-------+
| 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");
    ...
}

但我得到SQLException执行时rs.getInt("posts.id") :

java.sql.SQLException: Column 'posts.id' not found.

如何使用 JDBC 和 JavaDB/Derby 作为数据库从上面的 SQL 查询中获取值?

我怎样才能区分id栏目中的users and posts检索值时的表ResultSet?


您正在尝试检索id值,但您使用“posts.id”来引用它。Don't

您所需要的只是列名或别名,而不是表名:

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");
  ...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JDBC 从多个表中进行 SELECT 时如何识别列? 的相关文章

  • ORA-00933 与内部联接和“as”混淆

    我有一个使用以下命令从两个表中获取数据的查询inner join 但我收到错误SQL command not properly ended as 下面有一个星号 select P carrier id O order id O aircra
  • 如何对多行的一列值求和?

    我有这个表 我想添加几行的 change 列的值 或者更准确地说 从 ne 值为零的行到 ne 值为零的下一行 不是第二个本身 任何答案将不胜感激 rn date ne change 0 2008 12 07 0 10330848398 1
  • 如何使用 SQL 通过表示多级订单的 varchar 字段正确排序?

    我不太喜欢数据库 我发现在查询上出现以下问题SQL服务器数据库旧的遗留应用程序的 我声明不幸的是我无法更改数据库结构 字段类型 这非常难看 我有以下情况 SELECT Sottocategoria IdSottocategoria IdCa
  • java -postgresql 最后插入的 id 插入时未获取

    我有一个插入功能postgresql如下 CREATE OR REPLACE FUNCTION insert orderhead order id integer order dt text customer id integer rout
  • 我应该使用平面表还是标准化数据库?

    我目前正在开发一个使用 MySQL 数据库作为后端的 Web 应用程序 在继续下一步之前 我需要知道什么更适合我的情况 简而言之 在这个应用程序中 用户将能够使用任何数字字段 他们决定 构建自己的表单 现在我将其全部存储在通过外键链接的几个
  • 使用条件 SQL 统计每月汇总记录

    我有一张桌子 我们就叫他们桌子吧SUMMARYDATA NIP NAME DEPARTMENT STATUSIN STATUSOUT TOTALLOSTTIME A1 ARIA BB 2020 01 21 08 06 23 2020 01
  • 如何进行数据透视并计算列平均值

    我承认这是迄今为止我必须面对的最复杂的 SQL 语句之一 我在这件事上碰壁了 我希望有人能帮我一把 我在数据库中有这张表 Item ActiveTime sec DateTime 1 10 2013 06 03 17 34 22 gt Mo
  • 自动提取数据 - Oracle SQL Developer

    我通过 SQL Developer 连接到 Oracle 数据库 我想编写一个返回每月数据集的查询 然后将该数据提取到分隔文本文件中 我知道如何做到这一点就好了 我想知道是否有一种方法可以编写一个脚本来运行查询并在一年内逐月提取数据 这样我
  • 如何引用下一行的数据?

    我正在 PostgreSQL 9 2 中编写一个函数 对于股票价格和日期的表 我想计算每个条目较前一天的百分比变化 对于最早一天的数据 不会有前一天 因此该条目可以简单地为 Nil 我知道WITH声明可能不应该高于IF陈述 到目前为止 这就
  • Spring Data JPA 选择不同

    我有一个情况 我需要建立一个select distinct a address from Person a 其中地址是 Person 内的地址实体 类型的查询 我正在使用规范动态构建我的 where 子句并使用findAll Specifi
  • 如何连续添加起始行和下一行的值

    我只想创建一个 sql 查询 结果就像图片上的那样 类似于 SQL 中的斐波那契数列 Ex Column 1 10 则 Result 列的值为 Result 10 因为这是第一行 然后假设column1第二行的值为50 那么Result第二
  • hive sql查找最新记录

    该表是 create table test id string name string age string modified string 像这样的数据 id name age modifed 1 a 10 2011 11 11 11 1
  • SQL Server 2008 错误 233

    我正在使用以下 sql 脚本在 SQL Server 2008 中创建新登录名 CREATE LOGIN xyz WITH PASSWORD xyz DEFAULT DATABASE master DEFAULT LANGUAGE us e
  • 没有为 1 个或多个必需参数给出值。更新SQL

    我正在编写一个程序 当用户在列表视图上选择记录时 该程序会更新密码或积分 我收到错误 没有为 1 个或多个必需参数给出值 我不知道如何纠正 我是否遗漏了一些明显的东西 Dim sql As String UPDATE Users SET P
  • 分组和切换列和行

    我不知道这是否会被正式称为枢轴 但我想要的结果是这样的 Alex Charley Liza 213 345 1 23 111 5 42 52 2 323 5 23 1 324 5 我的输入数据采用这种形式 Apt Name
  • 选择多列 按一列分组 按计数排序

    我在Oracle中有以下数据集 c1 c2 c3 1A2 cat black 1G2 dog red B11 frog green 1G2 girl red 试图得到以下结果 基本上我首先尝试获取具有重复 c1 的行 c1 c2 c3 1G
  • postgresql:插入...(选择*...)

    我不确定它是否是标准 SQL INSERT INTO tblA SELECT id time FROM tblB WHERE time gt 1000 我正在寻找的是 如果 tblA 和 tblB 位于不同的数据库服务器中怎么办 Postg
  • 获取在任何日期创建的表的列表?

    我遇到了这样的情况 我想查找我在 2012 年 9 月 14 日 2012 年 9 月 14 日 在 sql server 上创建的表 是否有任何查询会列出在此日期创建的这些表 SELECT FROM sys tables WHERE cr
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 在同一查询中选择 Count of ip 和 Count of DISTINCT ip

    我有一个这样的表结构 TABLE NAME counter id datetime url ip 1 2013 04 12 13 27 09 url1 ip01 2 2013 04 13 10 55 43 url2 ip02 3 2013

随机推荐

  • 在类内初始化固定大小的常量数组

    考虑下面的类 class A const int arr 2 public A 是否可以初始化arr从构造函数初始值设定项列表或以除声明它的行之外的任何其他方式 即const int arr 2 1 2 请注意 我对与 C 98 一起使用的
  • 错误 400 删除记录的请求 YII 无效

    我试图在 Yii 中删除一条记录 这会抛出错误 400 请不要再次重复此请求 它正在检查后变量 我的控制器文件有 if Yii app gt request gt isPostRequest 当我回显我的 post 变量时 它是空白的 而
  • 预处理器之后的 CDT IASTNode getRawSignature

    在CDT核心插件中 有一个方法getRawSignature接口的IASTNode被描述为 Returns the raw signature of the IASTNode before it is processed by the pr
  • 扩展淘汰赛可观察数组

    我想向 ko observableArray 添加一些类似 ArrayCollection 的功能 IE removeItemAt index 调度项目删除事件 addItem item 调度项目添加事件 ETC 我注意到在大多数 ko 示
  • 更改反应本机中反应导航选项卡的底栏容器颜色

    我正在尝试将边框半径添加到底部栏 但是这样 我想将容器颜色从默认更改为紫色 我怎样才能做到这一点 到目前为止我做了什么 我想要的是 Code tabBarOptions activeTintColor colors primary inac
  • Google Maps API v3 中的remove_at 事件何时触发?

    我正在研究 google map api v3 想要添加编辑折线的功能 根据谷歌文档 当折线处于编辑模式时会触发 3 个事件 插入位置 set at 删除 at 我知道前两个事件何时被触发 并且也能够获得编辑后的坐标 我也想删除一个节点但不
  • 为什么我应该在 Clojure 中使用“apply”?

    这是 Rich Hickey 在一篇博客文章中所说的 但我不明白使用 apply 的动机 请帮忙 Clojure 和 CL 之间的一个很大区别是 Clojure 是 Lisp 1 因此不需要 funcall 并且 apply 仅用于将函数应
  • 安卓权限错误

    我创建了一个启用蓝牙并发现其他设备的应用程序 在清单中我有以下内容
  • 如何在java/Android中的选项卡之间使用intent?

    我需要知道如何处理选项卡之间的意图 例如 我有一个带有两个选项卡的选项卡活动 首先内容是文本视图 另一种是地图视图 当我单击该文本视图时 它会重定向到 tab2 它可以通过 setCurrentTab 1 或 setCurrentTabBy
  • SKAction playSoundFileNamed 在 500 mp3 时失败

    在我的应用程序中 我需要使用很多不同的短mp3 大约500个项目一一 所以我用SKAction playSoundFileNamed 在大约 200 声声音后 它崩溃并显示 无法加载资源 无法加载资源 s234 mp3 内存升至70mb 如
  • 在Three.JS中通过鼠标点击选择Collada对象

    我需要通过鼠标单击在 Three JS 中选择 Collada 对象 我知道我可以根据对象的 id 选择对象 并且我看到了一些用户可以与几何定义的对象交互的示例 here http mrdoob github com three js ex
  • 如何在 Flutter 中左对齐 OutlineButton 图标

    如何左对齐OutlineButton颤振中的图标 Icon可以按如下方式添加 但图标和文本都在按钮中居中对齐 有没有办法将图标向左对齐 文本向中心对齐 return new OutlineButton icon onPressed onPr
  • Java“常量字符串太长”编译错误。仅在使用 Ant 时发生,在使用 Eclipse 时不会发生

    我在一个类中有一些非常长的字符串用于初始化用户信息 当我在 Eclipse 中编译时 没有收到任何错误或警告 并且生成的 jar 运行良好 最近 我决定创建一个 ant 构建文件来使用 每当我用 ant 编译同一个类时 我都会收到 cons
  • jQuery 验证插件 - 如何不显示“此字段为必填”标签

    如何关闭所有输入文本框的 此字段为必填 的显示 我宁愿不必做这样的事情 myForm validate messages myField1 required myField2 required myField3 required 您只需将默
  • 如何指定从中获取 EJB 的服务器?

    在 java EE 中 从远程服务器获取 EJB 的方法是在 JNDI 中查找 该规范定义了给定 bean 类型的 JNDI 名称 然而 这似乎仅适用于您想从本地计算机上获取信息的情况 我想像大多数用户一样从远程服务器上获取 bean 如何
  • 如何获得最爱的星星

    我想添加一个最喜欢的星星 就像 Android 上的联系人列表中的星星一样 我们有什么办法可以获得那颗星星 还是我必须自己写 除了选项菜单图标之外 我似乎找不到任何来自 android 的标准 GUI 元素 还有其他我没找到的吗 看看乔治
  • Pyserial:无法配置端口:(5,'输入/输出错误)

    在过去的两天里 我一直在尝试运行以下两行Python代码 但没有取得多大成功 import serial ser serial Serial 0 每次运行它时 我都会收到以下错误 Traceback most recent call las
  • oidc-client-js 未从 Identity Server 4 正确获取声明

    我有一个 Identity Server 4 的本地实例 我正在尝试遵循本指南 http docs identityserver io en release quickstarts 7 javascript client html创建一个
  • Swift Double 无法转换为 CGFloat

    我试图画一个简单的圆圈 当我到达以下行时 我收到错误 Double is Not Convertable to CGFloat under thestartAngle 0 0 path addArcWithCenter center rad
  • 使用 JDBC 从多个表中进行 SELECT 时如何识别列?

    我在 id 列上加入了两个表 它们看起来像 users id name posts id user id message 现在我想选择所有帖子并包含用户名 其中 SELECT FROM posts users WHERE user id u