[前][次][番号順一覧][スレッド一覧]

mysql:13058

From: 関 俊夫 <関 俊夫 <to-seki@xxxxxxxxxx>>
Date: Sun, 4 Jun 2006 06:31:47 +0900
Subject: [mysql 13058] Re: 同一テーブルから階層別に分けるSQL文をつくりたい

投稿者の関です。
この手の問題はSQL文で解決するのは無理なのでしょうか?
ヒントだけでも教えて頂ければ幸いです。
> 
> はじめての投稿です。
> SQL文が作れなく困っています。よろしくお願いします。
> 会社の組織階層を格納するテーブルがあります。
> テーブル構造は
> +------------------------------+
> | sections                     |
> +------------------------------+
> | id               int     (8) |
> | name             varchar (50)|
> | upper_section_id int     (8) |
> +------------------------------+
> そのデータは
> +----------------------------------+
> | id |   name   | upper_section_id |
> +----------------------------------+
> | 1  | 本社     |     0            |
> | 2  | A事業部 |     1            |
> | 3  | 東京支店 |     2            |
> | 4  |  営業部  |     3            |
> | 5  | B事業部 |     1            |
> | 6  | 大阪支店 |     5            |
> +----------------------------------+
> 希望する結果
> +---------------------------------------+
> | t1.name | t2.name | t3.name | t4.name |
> +---------------------------------------+
> |本社     |         |         |         |
> |本社     |A事業部 |         |         |
> |本社     |A事業部 |東京支店 |         |
> |本社     |A事業部 |東京支店 |営業部   |
> |本社     |B事業部 |         |         |
> |本社     |B事業部 |大阪支店 |         |
> +---------------------------------------+
> 私がためしたSQL文は
> SELECT t1.name, t2.name, t3.name, t4.name
> FROM `sections` AS t1
> INNER JOIN `sections` AS t2 ON t2.upper_section_id = t1.id
> INNER JOIN `sections` AS t3 ON t3.upper_section_id = t2.id
> INNER JOIN `sections` AS t4 ON t4.upper_section_id = t3.id
> ORDER BY t1.name, t2.name, t3.name, t4.name
> 私がためした結果
> +---------------------------------------+
> | t1.name | t2.name | t3.name | t4.name |
> +---------------------------------------+
> |本社     |A事業部 |東京支店 |営業部   |
> +---------------------------------------+
> 以上のように4つの階層関係が出来ているデータのみが表示してします。
> 
 ------------------------
関 俊夫
ダンサーズオンライン
http://www.dancers-online.com/


[前][次][番号順一覧][スレッド一覧]

     12277 2005-10-25 09:10 ["fujita" <t-fujita@x] MySQL5.0でシンボリックが有効にならない  
     12278 2005-10-26 08:14 ┣[Tetsuro IKEDA <tetsu]                                       
     12279 2005-10-26 09:49 ┃┗["fujita" <t-fujita@x]                                     
     12280 2005-10-26 09:57 ┃ ┗[Tetsuro IKEDA <tetsu]                                   
     12281 2005-10-26 10:30 ┃  ┗["fujita" <t-fujita@x]                                 
     13055 1938-05-16 13:05 ┗[関 俊夫 <to-seki@xx] 同一テーブルから階層別に分けるSQL文をつくりたい
     13057 2006-06-03 21:06  ┣["F.Y" <fumi_sby@xxxx]                                     
     13059 2006-06-04 06:36  ┃┗[関 俊夫 <to-seki@xx]                                   
     13060 2006-06-04 08:15  ┃ ┗[関 俊夫 <to-seki@xx]                                 
     13061 2006-06-04 10:30  ┃  ┗[関 俊夫 <to-seki@xx]                               
->   13058 2006-06-04 06:31  ┣[関 俊夫 <to-seki@xx]                                     
     13180 2006-07-23 03:25  ┗[demanotto <demanotto]