sqlite3 城市 省份 递归
时间: 2023-07-27 14:21:32 浏览: 145
使用递归循环读取省市区json文件数据,并保存到数据库中
您好!针对您的问题,我理解的是您想在 SQLite3 数据库中实现城市和省份的递归查询。具体实现方式可以参考下面的 SQL 语句:
假设您的城市和省份数据表为 city 和 province,其中 city 表中有一个 foreign_key 字段关联 province 表中的 id 字段。
查询所有省份及其下属的城市:
```
WITH RECURSIVE province_tree(id, name) AS (
SELECT id, name FROM province WHERE parent_id IS NULL
UNION ALL
SELECT p.id, p.name FROM province p JOIN province_tree pt ON p.parent_id = pt.id
)
SELECT pt.name, c.name FROM province_tree pt LEFT JOIN city c ON pt.id = c.province_id;
```
查询某个省份及其下属的城市:
```
WITH RECURSIVE province_tree(id, name) AS (
SELECT id, name FROM province WHERE id = ?
UNION ALL
SELECT p.id, p.name FROM province p JOIN province_tree pt ON p.parent_id = pt.id
)
SELECT pt.name, c.name FROM province_tree pt LEFT JOIN city c ON pt.id = c.province_id;
```
其中,`?` 是要查询的省份的 id。
这些 SQL 语句使用了 SQLite3 的递归查询语法,通过不断地递归查询上级节点,最终可以查询出所有下属节点。希望能对您有所帮助!
阅读全文