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

mysql:12871

From: "F.Y" <"F.Y" <fumi_sby@xxxxxxxxxx>>
Date: Sat, 18 Mar 2006 18:51:19 +0900 (JST)
Subject: [mysql 12871] Re: 動的なフィールド生成

・TabPage表のid列はTabPageData表のpage_id列とひもつけられる。
・TabPageData表のid列はpage_idごとに1から順に始まる。
・TabPageData表のid列の最大値は決まっている。
・項目名と中身で2つSQL発行する。
という前提で、とりあえず最大値は3ということにした。
簡単といいながら、15分ほどかけて考えた(暇人)。
当たらずとも遠からず、ではなかろうか、と自分では思う。

select 'id' as id, 'title' as title, 'body' as body,
t1.name as c1, t2.name as c2, t3.name as c3
from TabPage as t0,
TabPageData as t1 left outer join TabPage as t0_1 on t0_1.id =
t1.page_id,
TabPageData as t2 left outer join TabPage as t0_2 on t0_2.id =
t2.page_id,
TabPageData as t3 left outer join TabPage as t0_3 on t0_3.id = t3.page_id
where t0.id = t0_1.id
and t0.id = t0_2.id
and t0.id = t0_3.id
and t1.id = 1
and t2.id = 2
and t3.id = 3
union
select t10.id, t10.title, t10.body,
t11.value as c1, t12.value as c2, t13.value as c3
from TabPage as t10,
TabPageData as t11 left outer join TabPage as t0_11 on t0_11.id =
t11.page_id,
TabPageData as t12 left outer join TabPage as t0_12 on t0_12.id =
t12.page_id,
TabPageData as t13 left outer join TabPage as t0_13 on t0_13.id =
t13.page_id
where t10.id = t0_11.id
and t10.id = t0_12.id
and t10.id = t0_13.id
and t11.id = 1
and t12.id = 2
and t13.id = 3;
+------+-------+------+----------+-----------+------+
| id   | title | body | c1       | c2        | c3   |
+------+-------+------+----------+-----------+------+
| id   | title | body | image    | lead      | tax  |
| 1    | test  | body | test.gif | test lead | $123 |
+------+-------+------+----------+-----------+------+
2 rows in set (0.16 sec)

mysql> 



--- 松本 創 <kurari@xxxxxxxxxx> からのメッセージ:
> 初めて投稿します。
> SQLについて教えてください。
> 
> 1.既存テーブル
> 
> TabPage 
>  |id|title|body
> 
> TabPageData
>  |page_id|id|name|value
> 
> Pageに対するDataの多重度は 0-*です。
> DataからみたPageは1です。
> 
> たとえばこんなデータがあったとします
> 
> [TabPage]
> id = 1
> title = test
> body = body
> 
> [TabPageData]
> page_id = 1
> id = 1
> name = image 
> value = test.gif
> ---
> page_id = 1
> id = 2
> name = lead
> value = test lead 
> 
> といった構造を何らかのSelect SQLを発行して
> 
> Page_id	|title	| body	| image		| lead
> ----------------------------------------------------
> 1	|test	| body	| test.gif	| test lead
> 
> という形でデータを受け取りたいのですが、可能でしょうか?
> ちなみにPageによって、PageDataの持つnameは異なります。
> 
> どなたか分かる方いらっしゃれば、おしえてください。
> 
> 
> 
> 
> 

--------------------------------------
TSUKAME EIKOU! KAGAYAKE EGAO!
Yahoo! JAPAN JPC OFFICIAL PARTNER INTERNET PORTAL SITE
http://pr.mail.yahoo.co.jp/wintergames/

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

     12870 2006-03-18 16:52 [松本 創 <kurari@xxxx] 動的なフィールド生成                    
->   12871 2006-03-18 18:51 ┣["F.Y" <fumi_sby@xxxx]                                       
     12872 2006-03-19 19:43 ┗[<nagai@xxxxxxxxxx>  ] Re: $BF0E*$J%U%#!&lt;%k%I@8@.(B     
     12873 2006-03-19 21:01  ┗[松本 創 <kurari@xxxx] Re: 動的なフィールド生成