2017-03-09 5 views
1

私は私のテーブル構造は、iは1である状態IDを統一しているここは、私が欲しい、このIDを使用して、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 

の下に与えられているmysqlの、でクエリを記述しようとしていますに異なるIDを持つ複数の行の取得します米国のすべての州と各州の都市を検索します。ここで 、

  1. STATE_IDとCITY_IDが0である、それはCITY_IDが0であれば、それはSTATE_IDが0であれば、それは
  2. 場所IDがある都市である状態
  3. ある国
  4. ある場合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

関連する問題