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

mysql:13055

From: 関 俊夫 <関 俊夫 <to-seki@xxxxxxxxxx>>
Date: Mon, 16 May 1938 13:05:31 +0900
Subject: [mysql 13055] 同一テーブルから階層別に分ける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]