【发布时间】:2015-09-15 08:40:00
【问题描述】:
我从 GitHub 下载了Worlds-Country-State-and-City-Mysql-Database project,它提供了一个国家、州和城市的数据库。
通常在国家、州和城市的三个表中可以找到此类数据库,但这里只有一个表,并且包含所有三个数据。它工作正常,但我无法理解它是如何工作的。
请大家解释一下
【问题讨论】:
我从 GitHub 下载了Worlds-Country-State-and-City-Mysql-Database project,它提供了一个国家、州和城市的数据库。
通常在国家、州和城市的三个表中可以找到此类数据库,但这里只有一个表,并且包含所有三个数据。它工作正常,但我无法理解它是如何工作的。
请大家解释一下
【问题讨论】:
您在这里拥有的是父子关系。 parent_ID 列指定一个位置是否属于另一个(是另一个的子)Location_id。
例如,要获取 Aruba 的直接子项(状态),您可以这样进行自联接:
select * from mytable A
left join mytable B -- join same table
on b.parent_id=a.location_id -- with parent of the secondary being equal to the ID of the primary.
where a.location_id='Aruba'
如果你想得到州(城市)的孩子,你还需要一个自加入
【讨论】: