我需要基于下面的表模式构造一个SQLite语句。 ParentEventInfoID映射到同一个表中的其他项目。带内部选择的SQLite
表名EventInfo: _id,名称,描述,ParentEventInfoID,SortId为查询需求的要求
部分执行的名称和说明一个where子句,我没有问题:
SELECT * FROM EventInfo
Where Name LIKE "%search text%" OR
Description LIKE "%search text%"
ORDER BY SortId;
我遇到麻烦的部分是我还需要包含条目的父项。下面是返回所有匹配的LIKE的一份声明中,但即使我知道我应该有更多的只有一个父项:
SELECT * FROM EventInfo
Where Name LIKE "%search text%" OR
Description LIKE "%search text%" OR
_id = (SELECT ParentEventInfoID FROM EventInfo
Where (Name LIKE "%search text%" OR
Description LIKE "%search text%")
ORDER BY SortId
我还没有在一段时间做一吨的SQL和我感觉非常生锈。任何帮助是极大的赞赏。谢谢!
用'IN'代替_id后面的'=' – Miller
@MillerKoijam这样做了!你认为这是建立这种最有效的方法吗? – KevinM
应该有更好的查询。我认为我们可以避免内部查询中的类似子句,因为我们正在碰到同一张表 – Miller