人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

SQLについて教えて下さい

tableA
code,name
1,aさん
2,bさん
3,cさん
4,dさん
5,eさん

tableB
code,mode,add
1,e,東京都
1,e,大阪府
1,e,愛知県
1,e,宮城県
1,e,福岡県
1,h,長野県
1,h,大阪府
1,s,大阪府
2,e,千葉県
2,s,大阪府
2,h,大阪府
3,e,大阪府
3,h,東京都
4,e,北海道
4,e,愛知県
4,h,東京都
5,e,東京都
5,e,愛知県

上記のテーブルから「add」を「大阪府」で検索した場合、
下記のような表示をしたい場合のSQL(MySQL4.x)を教えてください。

aさん,e,h,s
bさん, ,h,s
cさん,e, ,

よろしくお願いします。

●質問者: worldtravel
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:ADD name SQL 北海道 千葉県
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● zebevogue
●60ポイント

上記の条件だけでやってみました。

SELECT

tableA.name AS name,

CASE WHEN SUM(CASE tableB.mode WHEN 'e' THEN 1 ELSE 0 END) > 0 THEN 'e,' ELSE ',' END ||

CASE WHEN SUM(CASE tableB.mode WHEN 'h' THEN 1 ELSE 0 END) > 0 THEN 'h,' ELSE ',' END ||

CASE WHEN SUM(CASE tableB.mode WHEN 's' THEN 1 ELSE 0 END) > 0 THEN 's' ELSE '' END AS mode

FROM tableA LEFT JOIN tableB ON tableA.code = tableB.code

WHERE tableB.`add` = '大阪府'

GROUP BY tableA.name

CASE文が多くなるのが難点ですが。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ