android - Android Room:查询不返回所有包含连接的行
问题描述
我有两个表 - 表 a 和表 b。在表 a 中,我有 20 列,其中 10 列连接到表 b。这样做的原因是用户可以选择多个值,这些值不能存储到表格中的一个单元格/行/列中,因此需要将其规范化到自己的表格中。我在检索数据时遇到问题。如果表 a 和 b 中都存在数据,则 im 使用的查询仅返回结果。但是我的用例允许用户只有表 a 中的数据。无论表 b 中是否没有数据,我都需要修改我的查询以返回行中存在的任何数据。
这是我的查询的精简版(不需要所有 20 列)
SELECT
tableA.id,
tableA.currentSituation,
tableA.moodStart,
tableA.automaticThought1,
tableB.id,
tableB.allOrNothing,
tableB.blamingOthers,
tableB.catastrophizing,
FROM tableA
JOIN tableB
ON tableA.id = tableB.tableAid
ORDER BY tableA.currentSituation
DESC
无论表 b 中是否不存在数据,任何修改此查询以返回所有行/数据的帮助将不胜感激。
解决方案
你好吗?我看到两个错误来更正您的脚本:首先将“SELECT”字添加到您的脚本中,另一个将“JOIN”更改为“LEFT OUTER JOIN”:
SELECT tableA.id,
tableA.currentSituation,
tableA.moodStart,
tableA.automaticThought1,
tableB.id,
tableB.allOrNothing,
tableB.blamingOthers,
tableB.catastrophizing,
FROM tableA
LEFT JOIN tableB
ON tableA.id = tableB.tableAid
ORDER BY tableA.currentSituation
DESC;
更多信息:sqlite 加入参考
推荐阅读
- angular - 如何在 webview 上调用 angular8 组件的功能?
- c# - 如何制作开机定时器?
- excel - 使用 VBA 将图片插入并链接到形状填充中
- docker - 如何升级 kubectl 服务器版本
- kubernetes - terraform azurerm - 无法破坏公共 IP
- python - 如何使我的代码可停止?(不杀/打断)
- google-cloud-firestore - 公开 fcm 令牌或通知密钥是否安全?
- reactjs - 松露拆箱反应,未处理的拒绝
- python - 使用持续时间匹配组合三个不同的时间戳数据帧
- python - 通过删除背景音乐来隔离人声