我正在尝试在mysql中编写一个查询,我的表结构在下面给出
place_id state_id city_id place_name
1 0 0 United States
2 1 0 Alabama
3 0 2 Auburn
32 0 0 Canada
33 32 0 Alberta
34 0 33 Calgary
这里我的美国身份证是1,使用这个身份我想要检索美国和各州城市的所有州。 这里,
答案 0 :(得分:1)
对于美国,您可以使用自联接3次加入同一个表。
select t1.place_name, t2.place_name, t3.
from my_table t1
inner join my_table t2 on t1.place_id = t2.state_id
inner join my_table t3 on t3place_id = t3.city_id
where t1.place_name ='United States';