我从GitHub下载了Worlds-Country-State-and-City-Mysql-Database project,它提供了一个国家,州和城市的数据库。
通常情况下,此类数据库位于国家,州和城市的三个表中,但此处只有一个表,并且它包含所有三个数据。它工作正常,但我无法理解它是如何工作的。
有人请解释一下
答案 0 :(得分:0)
你在这里有一个亲子关系。 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'
如果您想要获得州(城市)的孩子,您还需要一个自我加入