ベストアンサー ※ ChatGPTを利用し、要約された質問です(原文:mysql でのsqlの書き方について教えてくださ) MySQLでのSQLの書き方とテーブルの更新方法について教えてください 2010/12/17 19:08 この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 したいのです。 内容がわかりにくくてすみません。 質問の原文を閉じる 質問の原文を表示する みんなの回答 (2) 専門家の回答 質問者が選んだベストアンサー ベストアンサー mitoneko ベストアンサー率58% (469/798) 2010/12/17 22:23 回答No.2 姓・名の組み合わせが主キー候補であれば(重複・NULLがない) update テーブルA a , テーブルB b set a.ふりがな氏名(姓)=b.ふりがな氏名(姓) , a.ふりがな氏名(名) = b.ふりがな氏名(名) where a.氏名(姓)=b.氏名(姓) and a.氏名(名)=b.氏名(名) で、いけませんか? テーブルBで、姓名の組み合わせに重複があったらお手上げです。 質問者 お礼 2010/12/17 23:42 回答のとおり実行したところバッチリでした!!! 無事、ふりがながテーブルAに挿入されました。 大変助かりました。ありがとうございます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (1) SaKaKashi ベストアンサー率24% (755/3136) 2010/12/17 19:12 回答No.1 テーブルAに項目追加するのはいいけど、テーブルBが更新されたらどうするの? テーブルAに項目追加しないでテーブルAとテーブルBを結合して使えばなんの問題もないでしょう。 質問者 補足 2010/12/17 20:03 説明が足りず申し訳ありません。 テーブルBはCSVでもらった一時的なものです。 CSVをテーブルBとして取り込む前提です。 テーブルAを作成した後に顧客からふりがなも頼むと 納品直前になってデータがきたものですから。。。。。。 一致していないものは未入力データとして顧客に入力して 貰う予定です。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピューターデータベースMySQL 関連する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が複数出たりして おかしい結果になってしまいます。 どなたか、アドバイスをお願いできないでしょうか。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム 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 |青組| Accessのレポートの文字にカッコを追加したい。 Accessのレポートの文字にカッコを追加したい。 レポートに、名前とふりがなを表示させるのですが、ふりがなにカッコを付ける方法がわかりません。 どうすればいいのでしょうか? 【今】 山田 太郎 やまだ たろう ↓ 【このようにしたい】 山田 太郎 (やまだ たろう) レポートの項目(テーブル)は、 名前_漢字 と 名前_ふりがな に別れています。 名前_ふりがな のところの前後にカッコを付けたいです。 とりあえず、書式のところで ="( " & [名前_ふりがな] & " )" 見たいな事はしてみたのですが・・・ どうすれば、希望どおりになるのでしょうか? ACCESS2000のSQLについて ACCESS2000のSQL文について質問です。 K情報テーブル:(支店(テキスト型),所属(テキスト),氏名(テキスト),ログ(テキスト),抽出件数(数値),処理日(日付型)) 支店 所属 氏名 ログ 抽出件数 処理日 ----------------------------------------- 関東 埼玉 太郎 A 50 2009/02/25 関西 大阪 次郎 B 15 2009/04/01 関東 埼玉 太郎 A 10 2009/03/05 関西 大阪 次郎 B 5 2009/04/06 東北 青森 三郎 C 2 2000/01/02 東北 青森 三郎 A 2 2000/01/02 ・ ・ ・ ----------------------------------------- 以上のテーブル情報を、SQL文にて抽出したいのですが、抽出条件が私には難解で解決の見通しが立ちません。ご教授をお願いします。 ***条件*** [ログ] = "A" のみ抽出。 現在日から過去3ヶ月前までのデータのみ抽出。 [氏名]ごと[ログ]の総合計。 [氏名]ごとの[抽出件数]の総合計。 [ログ]の総合計の上位30件を降順で。 順位にNo.をふる。 上記の条件で抽出したデータをを下記の作業テーブルに出力したと思っております。 作業テーブル:順位,所属,氏名,ログ件数,抽出件数 宜しくお願いします。 次の条件を満たすSQL文をご教示下さい。 テーブル名: list no | first_name | last_name | comment ----+------------+-----------+--------- 1 | 太郎 | 山田 | ほげ 2 | 次郎 | 田中 | ふが 3 | 花子 | 山田 | ぴよ 4 | 三郎 | 佐藤 | ぴよ 5 | 太郎 | 山田 | ぴよ 6 | 次郎 | 田中 | ふー 7 | 三郎 | 佐藤 | ふー 8 | 花子 | 山田 | ふー 上記の表から同じ”last_name”を持つ人の”first_name”と”last_name”を重複無しで抽出する(下記のような結果)SQL文は作成可能でしょうか。 結果 first_name | last_name ------------+----------- 太郎 | 山田 花子 | 山田 宜しくお願いします。 SQL文について教えてください。 お世話になります。 テーブルを3つ作りました ユーザーテーブル:USER_MS USE_NO USER_NAME 001 太郎 002 次郎 003 三郎 品名テーブル:HINMEI_MS HINMEI_NO HINMEI_NAME 001 りんご 002 みかん 003 イチゴ 嫌いなものテーブル:KIRAI_TR KIRAI_NO USER_NO HINMEI_NO 001001 001 001 002003 002 003 002001 002 001 ※KIRAI_NO=USER_NO.HINMEI_NO と連結してプライマリーキーにした ここで、次郎の嫌いなものを抽出するときには $USER_NO = '002'; $SQL ="SELECT * FROM KITAI_TR A,HINMEI_MS B WHERE A.USER_NO = '$USER_NO'; で抽出できるのですが、 次郎の嫌いでない002みかんだけを抽出するSQL文がわからず苦慮しています。 以前、オラクルでSQLを使ったことがあったのですが、その時はFROM句の後に(SELECT * FORM・・・・) Bなどと書くと通ったのですがMYSQLでは通りませんでした。 よろしくお願いします。 SQL文についての質問 SQL文についての質問です。 下記のデータについてSQLにて氏名の重複を避けて、最新日付の金額だけを表示して 2006/06/01 山田太郎 200,000 2004/06/01 田中太郎 200,000 という結果にしたいのですが。 <全レコード> 年月日 氏名 金額 2006/06/01 山田太郎 200,000 2004/06/01 田中太郎 200,000 2003/06/01 田中太郎 200,000 2005/06/01 山田太郎 200,000 2002/07/01 田中太郎 100,000 2001/05/01 田中太郎 300,000 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 ORACLE環境下、SQLにて以下のような条件でデータを取得したいです。 AテーブルとBテーブルを結合して、Bテーブルから名称を取得する。 <Aテーブル> id (key) 番号1 番号2 A01 001 n0001 A02 null n0002 <Bテーブル> code(key) 名前 番号1 番号2 c0001 太郎 001 n0001 c0002 次郎 002 n0002 (1)A.番号が入力されていれば A.番号1=B.番号1 AND A.番号2=B.番号2を条件にする (2)A.番号が入力されていなければ A.番号=B.番号を条件からはずす。 A.番号2=B.番号2 のみで検索する。 <欲しい結果> A01→太郎を取得 A02→次郎を取得 入力されていたら条件に加え、入力されていなかったら 条件から外す、というSQLを教えていただけないでしょうか。 よろしくお願いいたします。 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の条件から省くようなことは可能なのでしょうか? AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム MYSQLのストアドでの動的SQLについて MYSQL初心者ですが、よろしくお願いします。 MYSQL(ver5.5)でストアドプロシージャを作成しようと思います。 WEBの検索画面に入力された条件に応じて、WHERE句を動的に作成したいのです。 例えば、WEBの検索画面の検索条件に、 (1)氏名 (2)住所 (3)電話番号 があり、(1)と(3)に入力された場合は、 あるテーブルの検索条件を WHERE 氏名=入力氏名 AND 電話番号=入力電話番号 のように動的にSQLを作成したいです。 (条件に応じて、静的なSQLを使い分けるやりかたはしたくない) このような動的なSQLはストアドプロシージャで作成できのでしょうか? よろしくお願いします。 一覧の表示で名前をデータ数を表示したいのですが… お世話になります。 度々申し訳ないのですが、質問させてください。 現在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 佐藤次郎 埼玉県 たすけて~!はやく~!SQL文がわからないの~! どなたか教えて下さいませ。 VBでoracleからデータを取ってくるところで、select文の書き方が分かりません。社員名簿テーブルから社員No.と社員名と先輩No.と先輩名を取ってくる場合です。先輩名は社員名簿の”先輩”の社員No.と先輩No.を関連付け(=)し、”先輩の”社員名を取ってきたいのです。 例)社員No. 社員名 先輩No. 先輩名 3 山田太郎 1 山田ごん太 7 山田花子 3 山田太郎 つまり、山田太郎は山田花子の先輩であることがわかります。 この表を作るために同じテーブルで関連付けをしてデータを取得したいのです。SQL文でお願いします。 たすけて~! テーブルデータの絞込み条件 MySQL4.1、PHP Version 4.3.9を使用しています。 下記のような2つのテーブルA,Bから テーブルAに存在するキー(no)のデータのみ取得したいのですが、 どのようにWHERE文を書いたら一回のSQL文で取得出来るのでしょうか。 テーブルA no |name 1 |たろう 2 |はなこ 3 |じろう テーブルB no |old 1 |16 3 |18 取得したい結果テーブル no |name 2 |はなこ 良い方法が見つかりません。 宜しくお願いします。 集計するためのSQL構文を教えて下さい。 初めて投稿します。よろしくお願いします。 現在、ストアドプロシージャとSQLの勉強をしながら作業を行なっています。そのため説明不足などありましたらご指摘願います。 [環境] データベース:SQLServer2005 SQL作成環境 :SQLServerManagementStudioExpress(9.00.2047.00) 望んでいる出力結果 病室,タイプ,10/01水,10/02木,10/03金,10/04土,10/05日 -------------------------------------------------------------- 10,集合3,○○太郎,○○太郎,○○太郎,○○太郎,□□花子 △△太郎,△△太郎,□□花子,□□花子 □□花子,□□花子 11,個室A, ××太郎,××太郎,××太郎 12,個室B, ○○次郎,○○次郎,○○次郎,○○次郎 ※指定した日付範囲で、全病室を対象に入院中患者、入院予定患者を 病室単位で求めたいです。 関係するテーブル情報 ※マスタテーブルは、名称+Mで表記します。 ※データテーブルは、名称+Tで表記します。 [病室] 病室M( 病室番号 INT タイプコード INT ) [日付] ストアドのパラメータで集計開始日と終了日を受け取るため、 その集計範囲も動的に変わります。 ※上記の結果では、 集計日(自):2008/10/01 集計日(至):2008/10/05 を受け取った場合を想定し記述しています。 [入院者氏名] 患者T( 患者コード INT 患者氏名 VARCHAR(128) 通院種別 TINYINT(1:通院,2:入院) 退院区分 TINYINT(1:入院,2:退院) 入院日 SMALLDATETIME 退院日 SMALLDATETIME ) [患者と病室を紐付けるテーブル] 病室割当T( 割当番号 INT 患者番号 INT 病室番号 INT ) 長文となり申し訳ありません。 上記の情報でストアドを組もうとしているのですが、 SQL含め勉強不足な状態です。 実現するための考え方、方法、アドバイス等を頂きたいです。 よろしくお願い致します。 Accessで一致データを抜いて項目をずらす方法 Access2000を使用して、テーブル1のフィールド2~5で、テーブル2と一致したフィールドを抜いて項目をシフトさせたいのですが、どのような方法があるのでしょうか。 <元テーブル> フィールド→ 氏名, 名1, 名2, 名3, 名4 ・テーブル1の項目 山田,花子,次郎,三郎,四郎 鈴木,五郎,六郎,七朗,和子 佐藤,和子,一郎,太郎,四郎 ・テーブル2の項目 山田,花子 鈴木,七朗 鈴木,和子 佐藤,一郎 佐藤,四郎 佐藤,和子 <変換後テーブル>テーブル1を基準として フィールド→ 氏名, 名1, 名2, 名3, 名4 山田,次郎,三郎,四郎,null 鈴木,五郎,六郎,null,null 佐藤,太郎,null,null,null 分りずらい説明で申し訳ありませんが、宜しくお願いします。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター データベース SQL ServerOraclePostgreSQLMySQLNoSQLその他(データベース) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
回答のとおり実行したところバッチリでした!!! 無事、ふりがながテーブルAに挿入されました。 大変助かりました。ありがとうございます。