如何从SqLite数据库获取与订单的多对多关系

如何从SqLite数据库获取与订单的多对多关系,sql,sqlite,Sql,Sqlite,在我的数据库中,我有两个业务对象: 城市id:int,名称:varchar 连接id:int,此处不需要的其他字段-它描述了路径上的城市列表,即从一个城市到另一个城市的公交车 要连接这些表,我还有一个表连接\u city: 身份证件 城市标识-城市标识 连接\u id-连接的id number-连接路径中的编号 my的问题是如何以最快的方式从DB获取具有path的所有连接 现在我正在查询所有具有cc_id=from_id或cc_id=to_id的连接,然后在我的Java Android代码中对其

在我的数据库中,我有两个业务对象:

城市id:int,名称:varchar 连接id:int,此处不需要的其他字段-它描述了路径上的城市列表,即从一个城市到另一个城市的公交车 要连接这些表,我还有一个表连接\u city:

身份证件 城市标识-城市标识 连接\u id-连接的id number-连接路径中的编号 my的问题是如何以最快的方式从DB获取具有path的所有连接


现在我正在查询所有具有cc_id=from_id或cc_id=to_id的连接,然后在我的Java Android代码中对其进行解析。

似乎CTE可能有助于代码澄清

With cteConnection as (select id, city_id, 
                       connection_id, number from connection_city);
SELECT *
FROM City c
INNER JOIN cteConnection cte 
        ON cte.city_id = c.id
LEFT OUTER JOIN connection ct 
        ON ct.ID = cte.connection_id

我不太明白。这个CTE是什么?这个CTE位于主SELECT语句上方:SELECT*[…]。它不是必需的,但用于帮助使查询可读。目前还没有Android有足够的SQLite版本。在这种情况下,左侧外部联接不应推断cte,而是具有一个联接选择id city\u id,来自x上的connection\u city x。connection\u id=ct.id或一个带有where子句作为联接的外部应用程序。没有cc\u id列。显示一些示例记录和所需的输出。