Android Room:查询不返回包含联接的所有行
我有两张桌子——a桌和b桌。在表a中,我有20列,其中10列与表b相连。原因是用户可以选择多个不能存储在表中一个单元格/行/列中的值,因此需要将其归一化到自己的表中。我在检索数据时遇到问题。使用im的查询仅在表a和表b中都有数据时返回结果。但是我的用例只允许用户拥有表a中的数据。我需要修改查询以返回行中存在的任何数据,而不管表b中是否没有数据 这是我的查询的简化版(不需要全部20列)Android Room:查询不返回包含联接的所有行,android,sqlite,android-sqlite,android-room,Android,Sqlite,Android Sqlite,Android Room,我有两张桌子——a桌和b桌。在表a中,我有20列,其中10列与表b相连。原因是用户可以选择多个不能存储在表中一个单元格/行/列中的值,因此需要将其归一化到自己的表中。我在检索数据时遇到问题。使用im的查询仅在表a和表b中都有数据时返回结果。但是我的用例只允许用户拥有表a中的数据。我需要修改查询以返回行中存在的任何数据,而不管表b中是否没有数据 这是我的查询的简化版(不需要全部20列) 如果您能帮助修改此查询以返回所有行/数据,无论表b中是否没有数据,我们将不胜感激。您好?我发现有两个错误需要更正
如果您能帮助修改此查询以返回所有行/数据,无论表b中是否没有数据,我们将不胜感激。您好?我发现有两个错误需要更正脚本:首先在脚本中添加“SELECT”单词,然后将“JOIN”更改为“LEFT-OUTER-JOIN”: 更多信息: LEFT JOIN关键字返回左表[tableA]中的所有记录,以及右表[tableB]中的匹配记录。如果没有匹配项,则结果从右侧为NULL 从
我想你想要的是左撇子。但是您需要检查null,因为tableB条目可能不存在。Hi,你好吗?在代码中:是否包含“选择”字?将
JOIN
更改为LEFT JOIN
java.lang.NullPointerException:指定为非空的参数为空:方法kotlin.jvm.internal.Intrinsics.checkNotNullParameter,参数idI如果表bi中没有数据,则获取上述错误。在此处发现此错误报告:可能此错误与参数的类定义更相关:添加?所有可疑变量类型:val id:String?然后再试一次。
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
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;