Android Sqlite子查询未返回所有预期结果
我正在开发一个从本地sqlite数据库检索数据的学习应用程序。该数据库有两个表 存储物品类别的类别表: 存储物品本身的物品表: 现在我实现了搜索功能。我希望结果要么是在其文章值中包含搜索短语的文章,要么是在其父类别值中包含搜索短语的文章。因此,我使用此查询来执行此操作: 从项目中选择*,其中项目值为“%search\u phrase%”或父项目id=从类别中选择类别id,其中类别值为“%search\u phrase%” 它对于articles部分很好,但对于subquery部分,它只返回一个类别的文章。即使有更多的合格类别。左连接是否满足您的要求Android Sqlite子查询未返回所有预期结果,android,sql,sqlite,android-studio,Android,Sql,Sqlite,Android Studio,我正在开发一个从本地sqlite数据库检索数据的学习应用程序。该数据库有两个表 存储物品类别的类别表: 存储物品本身的物品表: 现在我实现了搜索功能。我希望结果要么是在其文章值中包含搜索短语的文章,要么是在其父类别值中包含搜索短语的文章。因此,我使用此查询来执行此操作: 从项目中选择*,其中项目值为“%search\u phrase%”或父项目id=从类别中选择类别id,其中类别值为“%search\u phrase%” 它对于articles部分很好,但对于subquery部分,它只返回一个类
SELECT a.*
FROM article a LEFT JOIN
category c
ON c.category = a.article_parent AND
c.category_value LIKE '%search_phrase%'
WHERE a.article_value LIKE '%search_phrase%' OR
c.category IS NOT NULL;
您可以通过以下方式执行此操作:
SELECT a.* FROM article a
WHERE a.article_value LIKE '%search_phrase%'
OR EXISTS (
SELECT 1 FROM category c
WHERE c.category_id = a.parent_id
AND c.category_value LIKE '%search_phrase%'
)
请参阅。您能否分享一个搜索短语,该短语给出的结果不正确?
SELECT a.*
FROM article a LEFT JOIN
category c
ON c.category = a.article_parent AND
c.category_value LIKE '%search_phrase%'
WHERE a.article_value LIKE '%search_phrase%' OR
c.category IS NOT NULL;
SELECT a.* FROM article a
WHERE a.article_value LIKE '%search_phrase%'
OR EXISTS (
SELECT 1 FROM category c
WHERE c.category_id = a.parent_id
AND c.category_value LIKE '%search_phrase%'
)