Mysql 从表中提取链表(ish)数据的SQL

Mysql 从表中提取链表(ish)数据的SQL,mysql,sql,Mysql,Sql,提前感谢您的帮助 我想根据站点ID获取站点的父站点列表/信息。有两个表中描述的站点层次结构,如下所示: table: site - id (PK) - name table: hierarchy - siteid (PK) (siteid => site.id) - parented (PK) (parented => site.id) - topid (topid => site.id) 例如,表中可能包含以下数据: site: id,na

提前感谢您的帮助

我想根据站点ID获取站点的父站点列表/信息。有两个表中描述的站点层次结构,如下所示:

table: site
- id  (PK)
- name

table: hierarchy
- siteid   (PK) (siteid   => site.id)
- parented (PK) (parented => site.id)
- topid         (topid    => site.id)
例如,表中可能包含以下数据:

site:
id,name
0,Earth
1,US
2,NY
3,GA
4,Queens
5,Farmers' Market
6,Buckhead

hierarchy:
siteid,parented,topid
5,4,1
4,2,1
2,1,1
1,0,1
5,6,1
6,3,1
3,1,1
1,0,1
我想得到农贸市场所有的家长。巴克黑德和皇后区都有市场

如果我想要站点id=5的父列表,如何使SQL在树上遍历/递归以获得类似的结果

site_name,parent_name
Farmers' Market,Queens
Queens,NY
NY,Earth
Farmers' Market,Buckhead
Buckhead,GA
GA,Earth
我突然想到农贸市场可能需要不止一行的土地表,但我不这么认为

谢谢你的帮助


David

向层次结构表中添加一个herarcy级别列的可能重复项。然后将层次结构表层次结构级别时间连接到自身,并更改连接键。