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

mysql:13059

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

すいません。先ほどresに気がつかなくて送ってしまいました。
時々パソコンの時計がくるってしまいます。
早速このSQLを試してみます。

> -----Original Message-----
> From: F.Y [mailto:fumi_sby@xxxxxxxxxx]
> Sent: Saturday, June 03, 2006 9:07 PM
> To: ml@xxxxxxxxxx
> Subject: [mysql 13057] Re: 同一テーブルから階層別に分けるSQL文をつくり> い
>
> とんでもない日付で送ってきてますね。
>
> select a1, a2, a3
> from (
> select name as a1, null as a2, null as a3
> from t1
> where upper_section_id = 0
> union
> select t1_0.name as a1, t1_1.name as a2, null as a3
> from t1 as t1_0, t1 as t1_1
> where t1_0.upper_section_id = 0
> and t1_1.upper_section_id = t1_0.id
> union
> select t1_0.name as a1, t1_1.name as a2, t1_2.name as a3
> from t1 as t1_0, t1 as t1_1, t1 as t1_2
> where t1_0.upper_section_id = 0
> and t1_1.upper_section_id = t1_0.id
> and t1_2.upper_section_id = t1_1.id
> ) as t0
> order by a1, a2, a3
> ;
>
> 美しくない…。
> 直積を華麗に使う方法がありそうだけど、体重が1kg増えてしまったので考えら
> れない…。
>
> --- 関 俊夫 <to-seki@xxxxxxxxxx> からのメッセージ:
> > はじめての投稿です。
> > 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]