キーワードを1つにまとめたいです

こんにちは。下記のようなIDに対し、複数のキーワードが登録されています。

TABLE1
フィールド、ID、KW

ID,KW
001,ice
001,cold
001,tastegood
002,book
002,google
003,analytics
003,excite
003,yahoo
003,sql

といったようにデータが登録されています。
これだと見にくいのでクエリで下記のように整形したいと思います。

001 ice cold tastegood
002 book google
003 analytics excite yahoo sql

半角スペースで区切りたいと思います。MYSQL5.1かMS ACCESS2003で
やれればと思っています。よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

MySQLであれば、独自機能のGROUP_CONCAT関数で実装できると思います。



参考URL:http://dev.mysql.com/doc/refman/5.1/ja/group-by- …
    • good
    • 0
この回答へのお礼

うわ!!この関数凄いです!!知りませんでした!ご回答ありがとうございます!!

お礼日時:2011/04/20 09:18

以下、Accessでの方法です。



クエリで表示するならば、

http://www.f3.dion.ne.jp/~element/msaccess/AcTip …




テーブルに直接取り込むならば、

http://oshiete1.watch.impress.co.jp/qa6628827.html

の書き直しで、
TABLE1と同じ構造のTABLE2を設定し、
TABLE2: ID KW

以下のコードを標準モジュールに保存し、
ボタンクリックで呼び出すか、あるいは
ボタンクリックの中にプロシージャの
中身をコピーして実行してもいいです。

なお、DAOを使っているので、コード表のツールから
参照設定を選択して、
Microsoft DAO xx Object Library
にチェックを入れて、OKとします。xxは3.6のような数字です。


Sub test()
Dim db As Database
Dim rs1 As Recordset
Dim rs2 As Recordset
Dim rs3 As Recordset
Dim strSQL As String
Dim myStr1 As String
Dim myStr2 As String

strSQL = "SELECT TABLE1.ID FROM TABLE1 GROUP BY TABLE1.ID;"
Set db = CurrentDb
Set rs1 = db.OpenRecordset("TABLE1")
Set rs2 = db.OpenRecordset("TABLE2", dbOpenDynaset)
Set rs3 = db.OpenRecordset(strSQL)

If rs3.RecordCount > 0 Then
rs3.MoveFirst
Do Until rs3.EOF
If rs1.RecordCount > 0 Then
rs1.MoveFirst
Do Until rs1.EOF
If rs3!ID = rs1!ID Then
myStr1 = rs1!ID
myStr2 = myStr2 & " " & rs1!KW
End If
rs1.MoveNext
Loop
rs3.MoveNext
End If
rs2.AddNew
rs2!ID = myStr1
rs2!KW = myStr2
rs2.Update
myStr1 = ""
myStr2 = ""
Loop

End If
rs1.Close: Set rs1 = Nothing
rs2.Close: Set rs2 = Nothing
rs3.Close: Set rs3 = Nothing
db.Close: Set db = Nothing
End Sub
    • good
    • 0
この回答へのお礼

コードまで書いていただいてありがとうございます!なるほど、これならできそうですね!ご回答ありあとうございました!!ちなみに今回はmysqlのgroup_concat関数を使おうと思います。でも、勉強になります、助かりました!

お礼日時:2011/04/20 09:19

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QDA PUMPのアルバム

DA PUMPの「Da Best of Da Pump」というアルバムを
聞いたのですが、どれも同じ様な曲に
聞こえたのですが。
DA PUMPの曲は全部こんな感じなのでしょうか?

Aベストアンサー

「Da Best of Da Pump」というアルバムの方が、曲それぞれが独立している感じがしました…少なくとも私は区別が付きました。

最近のアルバムだと全然区別が付きません、、仮面ライダーの曲しかわかりません ヾ(・・; ォィォィ

QACCESSでオートIDのように日付が入るようにしたい

表題だけでは何のことか自分でも分かりませんが、下記のようなことをやりたいと考えております。

1.日々の予定表と日報をACCESSで作る
2.毎日の予定を未来のことも含めて入力していくので、現在マウスホイールを回すと
オートナンバー型のIDの数字が進むみたいに日付をくるくる進むようにしたい。
3.テーブルに日付を予め入力していくことも考えたが、ずっと使う予定のものなので、
できればACCESSの持つ機能で済ませたい

カレンダーの導入なども考えましたが、毎日必ず入力するので、いちいち日を選択→代入というのも違うかと思います。

ググっても出てこないので、出来ない可能性が高そうですが、どうぞ宜しくお願いします。

Aベストアンサー

>ググっても出てこないので、出来ない可能性が高そうですが、どうぞ宜しくお願いします。
出来ないのではなくこんな面倒なことをしようと考えないからですね
決まって当日とか翌日であれば規定値を使えばいいし
決まってなくてキーインが面倒ならカレンダーコントロールを使います

マウスホイールは規定ではレコード移動に割り付けられています
これを止める方法というのはWEBを検索すればいくらでも見つかるでしょう
そのコードが参考になると思います(ただし、結構難しいですよ)

Q困っています!!!RiteStart Menとは?

お世話になります。

非常に困っています。

高齢の母が、訪問販売で外国製の「RiteStart Men」という健康食品?をだまされて買わされているようです。

「RiteStart Men」を検索しましたが、HPが英語で意味がわかりません。

どなたか、「RiteStart Men」とはなにか?

どこの国の、どのメーカーから出ているのか?成分はなにが入っているのか?効能はどのようなものか?お教えください。

お医者さん、薬剤師さん、製薬関係の方、保健師さん、看護師さん、英語の理解出来る方々の皆さん、よろしく御回答をお願いいたします。

Aベストアンサー

ミネラル入りのマルチビタミン剤と言うだけで特別な効果は無く、偏った食事の人には効くといえば効くかもしれない程度でしょう。
(鰯の頭も信心から の部類)

この程度でしたら薬局で普通に売られているマルチビタミン剤と同等で、高いお金を払って購入する必要はまったくありません。

例えば翻訳サポートサイトを使ってみれば、大体は分ります。

http://www.agelessway.org/rimenallinon.html

RiteStart® Men Multivitamin Mineral Health Supplement with 4Life Transfer Factor Plus Tri-Factor Formula

http://www.excite.co.jp/world/english/
翻訳サイト
左側に英文をコピーして、翻訳をクリックし、右側に出た日本文を確認下さい。
==>
RiteStart?
4Lifeの転移因子のプラスのトリ・ファクター・フォーミュラを備えた人総合ビタミン剤ミネラル健康補助食品

その次のProduct Profile .....
==>
製品紹介
4Life転移因子を備えた1つの完全な多種ビタミン入りの鉱物の健康補助食品でRiteStart人すべての老化防止影響に関して学習する、プラスのトリ要因定式
4LifeからのRiteStartの人の多種ビタミン入りの鉱物の健康補助食品は他のものがないことのような栄養素のコンビネーションです。
正確な目的のために名前を付けられて、それは提供します...あなたの日の間の、あなたの健康、およびあなたの生活のためのRiteStart...この製品は、あなたを助けることを目指しています、ルック・アンド・フィールの偉人、また生活ゴールを達成するために必要とするエネルギーおよび免疫の支援を得ています。

ミネラル入りのマルチビタミン剤と言うだけで特別な効果は無く、偏った食事の人には効くといえば効くかもしれない程度でしょう。
(鰯の頭も信心から の部類)

この程度でしたら薬局で普通に売られているマルチビタミン剤と同等で、高いお金を払って購入する必要はまったくありません。

例えば翻訳サポートサイトを使ってみれば、大体は分ります。

http://www.agelessway.org/rimenallinon.html

RiteStart® Men Multivitamin Mineral Health Supplement with 4Life Transfer Factor Plus Tri-Factor Formula

h...続きを読む

Qユニオンクエリで複数ファイルをまとめるには

★はじめまして
会社でアクセスを使用している初心者です。
社員データーをアクセスファイルで管理しています。
10人が一つファイルを持って使用しています。
なので、ファイル数は10です。
フィールド(項目)数が128です。
全てのファイルは同じ項目です。

【問題】
(1)社員データーを検索する際に、全てのファイルを開いて検索すると非常に時間がかかります。
(2)社員データーをCSVでエクスポートして、EXCELで集計・分析する際に全てのファイルからエクスポートすると時間がかかります。

【対策】
(1)全てのファイルをまとめようと
まとめファイルを作成して
全てのテーブルをリンクして(10ファイル)
ユニオンクエリでまとめようと思いました。

【結果】
エラーです。
『定義されているフィールドが多すぎます』と表示されます。

【教えてください】
(1)フィールドが多すぎるとユニオンクエリは使用できないのですか?
(2)他に全てのファイルをまとめる方法はないのでしょうか?

ご教授お願いします。

Aベストアンサー

10個のテーブルの構造が同じという事なので、1つのテーブルにデータをまとめるのが良いのではないでしょうか?
その時、Mdbは別にして実行するMdbとはリンクテーブルにしておくと、良いと思います。
アクセスのデータベースは壊れる事もありますので、データMdbのバックアップを取るのも簡単になりますよ。
現状、わざわざ10個に分けている理由があれば(例えば支店毎にテーブルを分けているなどの場合)識別用のフィールドを追加する必要はあると思います。
後、集計をエクセルに出力しているそうですが、アクセスでやった方が簡単で早いのではないでしょうか?
KeyやIndexなども有効に貼っておかれるとアクセスでの検索の処理速度は早くなります。
外部のデータベースへのテーブル作成クエリーや追加クエリーの実行が可能ですのでデータMdbを作成して、そこへ現在使用しているMdbからデータを追加していけば簡単に出来ますよ。

QDA PUMPとSMAP

DA PUMPとSMAPは仲がいいんでしょうか?誰か知っている人、いましたら、お願いします。ちなみに私は、DA PUMPの大ファンですが。

Aベストアンサー

#1さんの言う通り、ジャニーズ事務所側の方針により、
DA PUMPの出る番組にはジャニーズは出ないことになっています。

唯一、DA PUMPとジャニーズが一緒に出られる番組は、
NHKの紅白歌合戦。
「紅白」の権威には、ジャニーズの圧力も及ばないようです。
で、DA PUMP本人達は、紅白に初めて出た時に、
「SMAPと初めて同じ番組に出られる!」と喜んでいたそうです。

....でも、w-inds.とかLEADとかFLAMEとかに対しても、
ジャニーズはDA PUMPに対してと同様の圧力をかけてるのかな?(笑)

QFileMakerProで複数人の感想や月まとめの

今は手書きの紙で、毎日1枚の用紙に、ひとこと感想を10人程度それぞれの方に書かせています。
なので1ヶ月で約31枚です。

それを月末に、各人ごとに1ヶ月のまとめとして、1枚の用紙にまとめています。
例えばAさんのまとめは、1枚の用紙に1日から31日までの欄があり、ひとこと感想の紙をめくりながらExcelで転記しています。大変面倒です。

それをFileMakerPro11を使って行おうとしているのです。
名前テーブル(名前フィールドだけ)と、感想テーブル(日付と名前フィールドと感想フィールド)があり名前フィールドはリレーションしています。

今まで通りひとこと感想の紙と同じレイアウトにしたい(予め名前欄には各人の名前が入っていて、それに対応する感想欄が空白)のですが、どうすればそのようなレイアウトになるのかわかりません。

リレーションの方法が悪いのか、テーブルの設計が悪いのか、お知恵があれば教えてください。

Aベストアンサー

リレーションなんて、高度な技は必要ないのでは。

「名前」「日付」「感想」「ひらがな」「検索記号用ラン(○、×、△、◎)」「シリアル番号」

これだけ、作って、表テーブルで、一覧、名前で、検索すれば、名前で並びます。

日付で検索すれば、日付で、検索ご、名前でソートしてください。

データーベースには、シリアル番号、と自分で任意に検索するために、◎とか、○とか、×とか、△

のランが一つ作って、あると、便利ですよ。

このヒントで、わかるかな。

QrawriteでFDimageを作製できますか

DOSのrawrite.exeでイメ-ジをFDに書くことはできますが
逆はできるのでしょうか?
このカテゴリで間違っていたら ごめんなさい

Aベストアンサー

FDのイメージを作成するのは rawrite.exeでは無理です。
WindowsならばDiskExplorerなどで簡単に作成できます。
Linuxならばddコマンドで簡単に作成できます。

Qアクセス2000で主キーとなる誤ってIDの列を削除

再びID列を作りオートナンバーにしたいのですが、途方にくれています。誰か教えてください。

Aベストアンサー

#1の補足です。
テーブルのフィールドが少なければ新規テーブルを作成、挿入しても良いのですが、多ければ再作成は手間がかかると思います。
#1のやり方以外でも、次の方法でできました。
こっちの方がいいかな。
1)元のテーブルをテーブル構造のみ複製する。(貼り付けるときに選択できる。)
2)ID列のデータ型をオートナンバーにする。
3)元のデータを挿入貼付する。
4)テーブルの名前を入れ替える。
5)動作確認後、元テーブルを削除する。

リンクなどは確認していませんが、テーブル自体は問題なく作れました。

Q会話のとき使う rite 意味を教えてください。

教えてください。
友達が会話中で頻繁に rite を使ういます。
内容で理解しようとしますがつながりません。

Aベストアンサー

会話ですか?スペルがわかっているということは、テキストによるチャットですか?

いずれにせよ right を rite
thank you を 10q
something を sthg
などは、いくらでもあります。

そしてrightはあいづちのように使います。
会話の中で相手(たとえばあなたが発した言葉)に対して「そうだね」「そうそう」「そのとおり」などの相槌です。
日本語の「うん」「たしかに」のような意味も含むこともあります。

Qアクセスのレポート合成(複数のレポートを一つにまとめる方法)

こんにちは。
現在アクセスにて、複数あるレポートを一つにまとめれないか挑戦中です。
現在の作業手順は以下になります。
1.見積書を選択する→見積書のフォームが表示される
2.見積書のフォームにある印刷ボタンをクリック→見積書の表紙がプレビューされる→表紙を印刷
3.見積書のフォームになり、各項目の「開」ボタンをクリック→各項目の明細のフォームに移行
4.明細のフォームにある印刷ボタンをクリック→該当項目の明細がプレビューされる→印刷
5.見積書に記載されている項目の数だけ3.~4.を繰り返す

この作業を表紙のフォームのボタン一つで出来ないでしょうか?もちろんボタンは新規で作ります。
項目が少なければなんてことないのですが、項目が多くなると今どこまで印刷が終わったのかわからなくなって、同じ明細を2回印刷してしまったり、最悪なのは項目を一つ飛ばして印刷してしまったりと、効率悪い上に重大なミスに繋がります。

色々調べながら試してみましたが、また挫折しそうで、質問しました。

現在あるのは見積書の表紙のレポートと明細のレポートです。
新規に一括印刷用のレポートを作成し、その詳細部分に既存の表紙レポートと明細レポートをサブレポートとして組み込むということをやってみました。
かなり惜しかったのですが、以下の問題が発生しました。
①表紙は問題なく反映されるのですが、明細が全然関係のない明細になってしまう。というより、明細として記録されているデータを全て反映してしまう。
②明細レポート側のレポートヘッダーが明細の2ページ目以降消えてしまう。

現在の仕組みとしては、表紙は見積書のフォ-ムからIDを引っ張ってきており、明細は見積書のサブフォームからID(表紙とは別のID)を引っ張っています。なので、既存のクエリをコピペしていじれば行けそうな気がするのですが、②の問題に関してはどうしようもなさそうな気がしています。
だとすると、全く別の一括印刷用のレポートを作るしかありませんか?
そうであれば、表紙と明細という、デザインの異なる、しかも共にヘッダー・詳細・フッターを必要とする場合どのように作成したら良いのでしょうか?

どなたかご教授いただければ助かります。

こんにちは。
現在アクセスにて、複数あるレポートを一つにまとめれないか挑戦中です。
現在の作業手順は以下になります。
1.見積書を選択する→見積書のフォームが表示される
2.見積書のフォームにある印刷ボタンをクリック→見積書の表紙がプレビューされる→表紙を印刷
3.見積書のフォームになり、各項目の「開」ボタンをクリック→各項目の明細のフォームに移行
4.明細のフォームにある印刷ボタンをクリック→該当項目の明細がプレビューされる→印刷
5.見積書に記載されている項目の数だけ3.~4.を繰り返す
...続きを読む

Aベストアンサー

ページヘッダーの部分は文字だけでは状況がよくわからないので
回答は控えさせていただきます。

レコードの抽出についてですが
レポートのレコードソースになっているクエリで条件を指定します。
フォームにIDがあるのであればクエリの抽出条件に
=[Forms]![メインフォーム名]![ID]
とすれば該当のIDのレコードのみになると思います。

http://oshiete.goo.ne.jp/qa/2114831.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報