You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多连接查询中如何返回无主键LEFT JOIN表的ROWID

如何在LEFT JOIN查询中获取TableB的ROWID

ROWID是多数数据库(比如SQLite、Oracle)中无主键表自带的隐式列,你需要通过表名.ROWID的方式明确指定要获取的是TableB的ROWID,同时注意关联条件的字段名拼写一致性。

正确的查询语句

SELECT TableA.PK AS ID, TableB.ROWID AS B_ROWID
FROM TableA
LEFT JOIN TableB ON TableB.StringValue = TableA.StringValue;

关键说明

  • 必须用TableB.ROWID限定ROWID所属的表,否则数据库无法识别你要调用哪个表的隐式ROWID列
  • 给ROWID列起别名B_ROWID可以让结果集更清晰,避免歧义
  • 你的原查询中关联条件里的字段名写成了StringValues(多了个s),但表结构定义的是StringValue,拼写错误会导致关联失败,最终所有TableB的ROWID都返回NULL,这很可能是你之前没得到正确结果的核心原因之一
  • 由于是LEFT JOIN,当TableA的记录在TableB中没有匹配的StringValue时,B_ROWID会返回NULL,这符合LEFT JOIN的逻辑

内容的提问来源于stack exchange,提问作者Mink

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:25:00