2017-03-09 47 views
1

我試圖寫在mysql中,我的表結構如下檢索與不同的IDS多行的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 

這裏給出我已經美國ID爲1的查詢,使用這個ID,我想檢索美國所有州和每個州的城市。 這裏,

  1. 如果STATE_ID和city_id是0,那麼它是一個國家
  2. 如果city_id爲0,那麼它是一個國家
  3. 如果STATE_ID爲0,那麼它是一個城市
  4. 地方ID是auto_increment

請有人幫助我,謝謝。

+1

發佈您的預期輸出。 –

+0

我不羨慕你的數據模型。 :-( – Strawberry

回答

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

謝謝你回覆自我加入解決了我的問題 –

+0

@PunabakaAbhinav好,如果我的回答是正確的,請將它標記爲已接受...看到這裏如何 http://meta.stackexchange.com/questions/5234/how-不接受-的回答工作 – scaisEdge