-1

如果它是一个重复的问题,请原谅。我尝试在这里和谷歌搜索,但我找不到我想要的。

我有两个表 A 和 B。
表 A 字段:id、名称、描述、评级。
表 B 字段:id、aId(链接到表 A)、customerId、推荐。

表 A 包含我存储用户提供的平均累积评分的数据项。表 B 存储表 A 的数据的另一个属性。它存储推荐位(1 表示推荐,0 表示不推荐)。

我想列出表 A 中的所有数据,但我想使用表 B 中的推荐位对它们进行排序。因此,如果表 A 中有 10 条记录,表 B 中有 2 条记录,同时列出所有这 10 条记录,则两条来自表 B 应该首先出现,然后是表 A 中的其他。推荐的位值是 0 还是 1 都没有关系。在列出表 A 中的其他 8 条记录时,我想根据它们的评级列出记录按降序排列。

有人可以指导我为 Android 应用编写这个 sqlite 查询吗?提前致谢!

4

1 回答 1

2

左连接将recommended字段添加到结果集中(NULL如果没有匹配的B记录,其值为 )。表达式recommended IS NULLorEXISTS(...)返回 0 或 1:

SELECT DISTINCT A.*
FROM A LEFT JOIN B ON A.id = B.aId
ORDER BY B.recommended IS NULL,
         A.rating DESC

或者:

SELECT *
FROM A
ORDER BY NOT EXISTS (SELECT 1
                     FROM B
                     WHERE B.aId = A.id),
         rating DESC
于 2013-08-25T08:53:29.160 回答