MySQLでのSQLの書き方とテーブルの更新方法について教えてください

このQ&Aのポイント
  • MySQLでのSQLの書き方とテーブルの更新方法について教えてください。
  • テーブルAとテーブルBがあり、テーブルAにふりがな氏名(姓)とふりがな氏名(名)の2項目を追加してテーブルBのふりがなを対応するテーブルAのふりがなに更新したいです。
  • 具体的なSQLの書き方や手順を教えていただきたいです。
回答を見る
  • ベストアンサー

mysql でのsqlの書き方について教えてくださ

mysql でのSQLの書き方についての質問です。 テーブルA(2項目 他既存データ) 氏名(姓) 氏名(名) 山田    太郎 山田    次郎 テーブルB(4項目) ふりがな氏名(姓) ふりがな氏名(名) 氏名(姓) 氏名(名) やまだ        たろう          山田    太郎 やまだ        じろう          山田    次郎 といった2つのテーブルがあります。 テーブルAに ふりがな氏名(姓) ふりがな氏名(名)  の2項目を追加してテーブルBのふりがなを 対応するテーブルAのふりがなに update したいのです。 内容がわかりにくくてすみません。

  • MySQL
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.2

 姓・名の組み合わせが主キー候補であれば(重複・NULLがない)  update テーブルA a , テーブルB b    set a.ふりがな氏名(姓)=b.ふりがな氏名(姓) , a.ふりがな氏名(名) = b.ふりがな氏名(名)    where a.氏名(姓)=b.氏名(姓) and a.氏名(名)=b.氏名(名)  で、いけませんか?  テーブルBで、姓名の組み合わせに重複があったらお手上げです。

torazo003
質問者

お礼

回答のとおり実行したところバッチリでした!!! 無事、ふりがながテーブルAに挿入されました。 大変助かりました。ありがとうございます。

その他の回答 (1)

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

テーブルAに項目追加するのはいいけど、テーブルBが更新されたらどうするの? テーブルAに項目追加しないでテーブルAとテーブルBを結合して使えばなんの問題もないでしょう。

torazo003
質問者

補足

説明が足りず申し訳ありません。 テーブルBはCSVでもらった一時的なものです。 CSVをテーブルBとして取り込む前提です。 テーブルAを作成した後に顧客からふりがなも頼むと 納品直前になってデータがきたものですから。。。。。。 一致していないものは未入力データとして顧客に入力して 貰う予定です。

関連するQ&A

  • mysqlのsql文について教えて下さい

    mysqlのsql文について教えて下さい 下記のようなテーブルとデータがあった場合に どうやれば 2,次郎だけを抽出できますか? 本日日付(2010-08-06)が 既にテーブルBにdateが存在する場合は 3,1,2010-08-04 3,1,2010-08-06を 対象外にしたいです。 Aテーブル id,user 1,太郎 2,次郎 3,3郎 Bテーブル targetid,homonid,date(datetime型) 3,1,2010-08-04 3,1,2010-08-06 3,2,2010-08-05 下記だと2010-08-04にヒットしてしまい(当たり前?)動作しません。 select distinct a.* from tblA a, tblB b where date_format(b.date, "%Y-%m-%d") <> "2010-08-06" ;

  • エクセルでアドレス帳を製作しているのですが・・・

    エクセルでアドレス帳を作成しているのですが、 A1セル:氏名 B1セル:フリガナ C1セル:姓 D1セル:名 の項目名を入れてA2~100をアドレス帳として登録 【C2:姓】【D2:名】に入力した文字を【A2:氏名】の列に結合反映するようにA2~100に関数を=C2&D2&E2と登録しています。 例えば C2には 山田 D2には太郎 と入れたら A2には 山田太郎 と入力されます これをA2の姓と名の間に半角スペースを自動で入れてC2とD2に入力した文字のフリガナもB2に自動で入力させる方法を探しています A2       B2        C2     D2 山田太郎  ヤマダタロウ  山田   太郎 ↓ A2       B2        C2     D2 山田 太郎  ヤマダタロウ  山田   太郎 解かりずらい説明ですいませんが、アドバイスよろしくお願い致しますm(__)m

  • SQL SERVER2005のJOINについて

    はじめて投稿させていただきます。 SQL SERVER2005のJOINの仕方で困っています。 どなたか、アドバイスをお願いできないでしょうか。 テーブルA CD NAME KBN 1 山田太郎 1 2 山田花子 1 3 山田次郎 2 4 山田五郎 1 テーブルB CD NENGETU DAY1 DAY2 DAY3 ~ DAY31 1 200811 ◎ ◎   1 200812 ◎ 3 200810 3 200811 ◎ 4 200811 ◎ 欲しい結果の条件と結果は テーブルAは、KBN = 1 のみ テーブルBは、NENGETU = 200811 但し、テーブルBには、テーブルAに存在しないCDもあります。 CD NAME KBN DAY1 DAY2 DAY3 ~ DAY31 1 山田太郎 1 ◎ ◎   2 山田花子 1 4 山田五郎 1  ◎ 以上の結果を取得したいSQLを書きたいのですが、 Select CD,NAME,KBN,DAY1,DAY2,DAY3~,DAY31 From テーブルA LEFT OUTER JOIN テーブルB On テーブルA.CD = (Select テーブルB.CD From テーブルB Where テーブルB.NENGETU = 200811) Where テーブルA.KBN = '1' Order By テーブルA.CD とかでやると、CDの1が複数出たりして おかしい結果になってしまいます。 どなたか、アドバイスをお願いできないでしょうか。

  • Accessのレポートの文字にカッコを追加したい。

    Accessのレポートの文字にカッコを追加したい。 レポートに、名前とふりがなを表示させるのですが、ふりがなにカッコを付ける方法がわかりません。 どうすればいいのでしょうか? 【今】 山田 太郎 やまだ たろう      ↓ 【このようにしたい】 山田 太郎 (やまだ たろう) レポートの項目(テーブル)は、 名前_漢字 と 名前_ふりがな に別れています。 名前_ふりがな のところの前後にカッコを付けたいです。 とりあえず、書式のところで ="( " & [名前_ふりがな] & " )" 見たいな事はしてみたのですが・・・ どうすれば、希望どおりになるのでしょうか?

  • SQLのテーブル結合

    SQLのSELECTについて質問です。 テーブルA、B、Cから情報を取得し、下記の画面イメージを表示させたいのですが、 どのようにテーブルを結合すればよいか判りません。 どなたかご教示ください・・・。よろしくお願いします。 #テーブルCから組名を取得するような処理は画面表示のロジックで行います。 #テーブルA、Bの結合についてのみ、教えていただきたいです。 条件 ・氏名と、所属情報の○×を表示したい ・DISTINCT等、重たい処理は避けたい 画面イメージ |氏名  |赤組|白組|青組| ------------------------------ |山田太郎|○ |× |× | |山田花子|× |○ |○ | テーブルA |個人ID|氏名  | -------------------- |000001|山田太郎| |000002|山田花子| テーブルB |個人ID|組コード| -------------------- |000001|1110  | |000002|1111  | |000002|1112  | テーブルC |組コード|組名| ------------------ |1110  |赤組| |1111  |白組| |1112  |青組|

  • SQLの問題です。

    以下のような二つのテーブルがあります。 社員テーブル 社員番号 社員氏名 1     花子 2     太郎 所属テーブル 社員番号 所属番号 1     10 1     20 2     30 欲しいのは以下の結果です。 1 花子 2 太郎 以下のSQLを実行すると、 SELECT distinct a.社員番号, a.社員氏名, b.所属番号 FROM 社員 a,所属 b where a.社員番号 = b.社員番号 order by 所属番号 1 花子 1 花子 2 太郎 となってしまいます。 先に述べたとおりの結果を取得するにはどういうSQLを書いたらいいでしょうか? お知恵を貸してください。宜しくお願いします。 Oracle8iを使用しています。   

  • SQLの使用方法について(動的な結合条件の変更方法について)

    SQL Server2005を使用しています。 以下のような動作を実現したいのですが、どのようなSQLとなるのでしょうか? 以下のような構成のテーブルがあるとします。 テーブルA 分類1(PK) 分類2(PK) 名前 1     空文字   山田 1     1     山田太郎 1     2     山田花子 2     空文字   鈴木 テーブルB 番号(PK) 分類1 分類2 100  1   空文字 101  1   1 外部から受け取るパラメータはテーブルBの番号です。 次の番号を受け取った際に、以下の結果を取得したいのですが、 どのようなSQLとなるのでしょうか? 番号100 ↓ 山田 山田太郎 山田花子 番号101 ↓ 山田太郎 以下の様なSQLを作成して試してみたのですが、番号2をJOINの条件として指定しているため、 番号100の時に望む結果を得ることが出来ませんでした。 SELECT   * FROM   テーブルA AS A LEFT JOIN (   SELECT     *   FROM     テーブルB   WHERE     番号 = パラメータ ) AS B ON  A.分類1 = B.分類1 AND A.分類2 = B.分類2 サブクエリのB.分類2が空文字の場合は、JOINの条件から省くようなことは可能なのでしょうか?

  • 一覧の表示で名前をデータ数を表示したいのですが…

    お世話になります。 度々申し訳ないのですが、質問させてください。 現在mysqlに格納したデータの一覧を表示するページを作っているのですが、表示結果が思うようにいかず困っています。 環境:Mysql 5.1.22-rc,PHP  5.2.5 データベース:test01 main -------------------------------------------------------- id name kana 1 太郎 たろう 2 次郎 じろう 3 花子 はなこ -------------------------------------------------------- sub2 -------------------------------------------------------- id a_sakuhin   title 1 data_1   青空   1 data_2   夕日 1 data_3   流星   3 data_1   町並み 3 data_2   列車   -------------------------------------------------------- というテーブルがあります。 それを一覧表示で ・太郎 (3) ・次郎 (0) ・花子 (2) という具合にしたいのですが、どうしても()の中が全件合わせた結果になり ・太郎 (50) ・次郎 (50) ・花子 (50) という様になってしまうのです。 どういったsql文を書けばよいのかアドバイスを頂けると嬉しいです。 よろしくお願いいたします。

  • SQLで二つのテーブルを統合したい

    お世話になります。 Access2000のSQLで質問させて下さい。 下記のAとBのテーブルがある状態で、二つを統合した Cを生成したいのですが、どのようにSQLを作成したらよいでしょうか? お手数でもうしわけございませんが、SQL文で回答頂ければ助かります。 --テーブルA--- ID 名前 11 やまだ 12 さかもと --テーブルB--- ID 名前 25 きのした 26 つちや --C-- ID 名前 11 やまだ 12 さかもと 25 きのした 26 つちや

  • 【エクセル】リストの照合について教えてください!!

    sheet1に、下記の様に600件の氏名が書いてあります。 A      B 1     山田太郎  2     鈴木花子 ・・・ 600   佐藤次郎 sheet2に、地域と氏名がずらっと書いてあります。 A      B      C     D    E 東京都   神奈川県   埼玉県   千葉県  茨城県 山田太郎 鈴木太郎 山田花子 佐藤次郎 ・・・ このsheet2の地域を、sheet1のC列に下記の様に入れたいのですが、 どの様に行ったら良いでしょうか? みなさんのお知恵をください!!宜しくお願い致します。 A      B      C 1     山田太郎   東京都 2     鈴木花子   神奈川県 ・・・ 600   佐藤次郎   埼玉県