MySQL中单个表中的多个表

时间:2015-09-15 08:40:00

标签: php mysql join

我从GitHub下载了Worlds-Country-State-and-City-Mysql-Database project,它提供了一个国家,州和城市的数据库。

通常情况下,此类数据库位于国家,州和城市的三个表中,但此处只有一个表,并且它包含所有三个数据。它工作正常,但我无法理解它是如何工作的。

这是该表的快照。 enter image description here

enter image description here

有人请解释一下

1 个答案:

答案 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'

如果您想要获得州(城市)的孩子,您还需要一个自我加入