在mysql中使用不同的id检索多行

时间:2017-03-09 09:59:08

标签: php mysql

我正在尝试在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,使用这个身份我想要检索美国和各州城市的所有州。 这里,

  1. 如果state_id和city_id为0则为国家
  2. 如果city_id为0则为状态
  3. 如果state_id为0则为城市
  4. 地方ID是auto_increment
  5. 请某人帮助我,谢谢。

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';