ベストアンサー ※ ChatGPTを利用し、要約された質問です(原文:2つのテーブルのフィールドの結合について。) テーブルのフィールド結合について 2020/12/10 22:49 このQ&Aのポイント 2つのテーブルのフィールドの結合についてアドバイスをいただきたいです。テーブル1とテーブル2のフィールドを結合することは可能でしょうか。結果のテーブルにはフィールド1、フィールド2、フィールド3、フィールド4、フィールド5が含まれます。 2つのテーブルのフィールドの結合について。 下記のように2つのテーブルレコードの結合ではなく フィールドの結合は出来るのでしょうか。 アドバイスよろしくお願いいたします。 テーブル1 [フィールド1][フィールド2][フィールド3] 1 A 1 2 A 1 3 A 1 テーブル2 [フィールド1][フィールド2] 1 A 2 A 3 A 結果 [フィールド1][フィールド2][フィールド3][フィールド4][フィールド5] 1 A 1 1 A 2 A 1 2 A 3 A 1 3 A 質問の原文を閉じる 質問の原文を表示する みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー chayamati ベストアンサー率41% (260/624) 2020/12/11 20:47 回答No.1 クエリでリレーションシップ(関連付け)により可能ですが、 課題例単純化しすぎです 添付はフィールド1で関連させましたがどちらかのフィールドユニーク設定が必要です。 企業であれば 部署テーブルと従業員テーブル、 見積書の頭出しテーブル(お客様名、お客様住所、わが社名) と明細テーブル(品名、数量、単価、金額、見積合計 学校であればクラステーブル 尚テーブルを新規作成するとオートナンバー型のIDフィールドが主キーとしてついてきます。多くの場合関連付けの一つで これと関連づけるために他方のテーブルに例えば見積書ID(長整数型)を追加します 画像を拡大する 質問者 お礼 2020/12/14 09:20 遅くなりましたが ご説明も分かりやすく、すぐ対応できました。 どうもありがとうございました。 通報する ありがとう 0 カテゴリ パソコン・スマートフォンソフトウェアAccess(アクセス) 関連するQ&A テーブルとテーブルを結合したい 同じフィールドを持つテーブル同士のデータを結合して、別のテーブル又はクエリに表示させたいのですが、こんなことできますか?できるとすればどうすればよいのですか? 例:テーブルAの商品フィールドのデータとテーブルBの商品フィールドのデータを一つにまとめてテーブルC又はクエリCに表示させたい。 accessフィールドの複数結合 テーブルAの1つのフィールドとテーブルB内の複数のフィールドを結合させたい。例 テーブルAには社員コードと社員名、テーブルBには商品名、納入社員コード、商品管理社員コード。テーブルAの社員コードフィールドとテーブルBの2つの社員コードフィールドを結合させたいのです。テーブルAをコピーして2つ作り、それぞれをBの2つのフィールドと結合すると出来るのですが、テーブルAが社員名でなく、画像だったりするととても大きなファイルサイズになってしまいます。お答えお待ちしています。 テーブル結合 度々お世話になっています。 Mysqlのテーブル結合したいと思ってます。 テーブル構成は以下のとおりですのでご参照ください。 ■テーブルA id | name 1 | bind 2 | samba 3 | apache ■テーブルB id | detail 3 | test 3 | test 1 | test ■結合結果 id | count 1 | 1 2 | 0 3 | 2 テーブルA,Bはidコラムで紐づいています。 この際、テーブルBのidごとにレコード数を出力したいのですが、 どういったSQLを流せば良いでしょうか。 ご教示願います。 ヤバいパソコンが壊れたかも!?事前に知っておきたい3つの兆候と対策 OKWAVE コラム 異なる二つのテーブルの結合について・・・ お世話になっております。 ちょっとややこしい質問になります。 「1」 Aと言うテーブルのAAと言うカラムから、$AAAと言うレコードを抽出致しました。ここまでは出来ました。(ここでの抽出結果を$CCCと致します。) 「2」 「1」の抽出結果($CCC)を元に、Bと言うテーブルのBBと言うカラムから、BBBと言うレコードも抽出し結合したいと考えております。 一番の問題は、「1」で出た結果(CCC)を元に、抽出する事が出来ません。 「1」のソースのみ完成してます。 $rs=$DB->query("SELECT * FROM `A` WHERE AA = '$AAA' ↑の抽出結果=$CCCを元に↓ $rs=$DB->query("SELECT * FROM `B` WHERE BB = '$CCC' 結合させたいんです!! セクションしているので結合できないとバラバラになってしまいます。。。。 ご教示お願い致します! inner join を使うのは分かるのですが・・・進めません。(泣) ACCESS テーブルの結合 お世話になります。 テーブルA(約20万レコード)、B(6レコード)があり、共通しているフィールドは以下の通りです。 ・受注日 ・製品コード ・数量 AとBのテーブルの共通しているフィールドを条件無しで1つのテーブルとして見立てたいと思っておりますがうまくいきません。 SELECT A.製品コード, A.数量, A.受注日 FROM A UNION SELECT B.製品コード, B.数量, B.受注日 FROM B; 上記SQLでエラーにはならないのですが、レコード数が本来約20万レコードあるはずが、7万レコードしか抽出されません。 SELECT A.製品コード, A.数量, A.受注日 FROM A; と SELECT B.製品コード, B.数量, B.受注日 FROM B; をそれぞれ分けてやると、レコード数に問題ありません。。 どのようにすれば2つのテーブルを1つに結合できるのでしょうか。 ご教授の程、宜しくお願い致します。 テーブル同士で持っている同一フィールドの計算(条件つき) こんばんは。金曜日は大変お世話になりまして有難うございました!勤務中にどうしても解決しなくてはならなかったので本当に助かりました<(_ _)> そして現在ですが、新たに下記の問題に直面しております。お手すきの時で構いませんので、どうぞご教授をお願い致します。 【存在しているテーブル】 A.立替金テーブル(a/b/c/d/e)←フィールド数5 B.預り金テーブル(a/b/c/d/e)←フィールド数5 【やりたい事】 1)A.とB.のテーブルそれぞれで持っているb(商品名)とe(金額)のフィールドを比較し、両方のフィールドが一致したレコードのみ、立替金テーブルから引っ張って表示する。 2)A.とB.のテーブルそれぞれで持っているb(商品名)とe(金額)のフィールドを比較し、両方のフィールドが不一致したレコードに関しては計算が必要。 パターンは「立替金テーブルで持っているb(商品名)のe(金額)数字が、預り金のe(金額)数字とは異なる」というものです。 この場合、やりたいことは、下記の通りです。 それぞれのテーブルでb(商品名)が同じもの同士、e(金額)を加算し、立替金テーブルのeから、預り金テーブルのeをマイナスし、立替金テーブルから該当するレコードを引っ張り、最後にfフィールド(計算結果の数字を入れるフィールド)を新規に作成、付け足しをしてファイル出力したい。 SQLの記述で構いませんので、どうぞ宜しくお願い致します。 PS:ごめんなさい…。あれこれやっていて疲れてしまって説明が、更に頭の回転が鈍くて、うまく出来ていないかも…。 3つ以上のテーブルの結合に関して いろいろな書籍を見ながら試してみましたが どうも求めている結果が得られませんでした… ヒントでも構いませんのでアドバイスお願いします。 テーブルの仕様 ■テーブル1■ 店舗コード 日付 フィールド1n フィールド2n フィールド3n フィールド4n ■テーブル2■ 店舗コード 日付 フィールド5 ■テーブル3■ 店舗コード 日付 フィールド6 2つのテーブルの内部結合や外部結合のSQL文は確認できましたが 3つ以上の記述がテキストにありませんでした。 ※もしかしたら2つのテーブルを結合してからかと思いましたが 具体的な方法が思い浮かびませんでした。 オラクルは9g SQL*PLUS ■その他の条件■ すべてのフィールドが例えNULLでも店舗コードと日付 は表示されるようにする。 INを使用して抽出したい店舗コードのみを表示させたい。 (その場合並び替え順を指定したい場合はINのあとで順番を指定すれば よろしいでしょうか?) フィールド1~4までの「n」は同じ種類のフィールドですが区分が10ずつ あり算術演算子で合計を求めた値のみを表示させます。 そのためASを使用してフィールド名を短くしたいと考えています。 店舗コードと日付は3つのテーブルに共通してありますが 結合した場合は1つづつの表示にしたいです。 大変申し訳ございませんが 宜しくお願いします。 異なるテーブルを結合(?)してdateで並べ替えたいと思っております。 結合、UNIONを用いても解決できない処理があって質問させていただきます。 現在、異なる3つのテーブルが以下のような状況であります。 ---------- テーブルA フィールドa、b、c(処理日時) テーブルB フィールドd、e、f(処理日時) テーブルC フィールドg、h、i(処理日時) ---------- これらのデータを用いて、単純に外部結合すると、フィールドがa~iまである表にできると思います。 そして、処理日時であるc、f、iをもちいて順番を並べたいと思っています。 しかし、フィールドが違うcfiをレコードを並べ替える基準にする方法が分かりません。 UNIONを使えば、処理日時をあわせられると知り、ためしに、それであわせてみましたが、他のフィールドも合わさってしまうので、(a、d、gが合わさるのは問題なかったんですが、)b、e、hが別のフィールドになっていないことで不具合がおきてしまいました。 ちなみに、c、f、iの型はdateです。 型が同じであることを利用したりできればいいんでしょうが、 このように、複数のテーブルの中の一部を並べ替えの基準にする方法をご存知の方いらっしゃいましたらご教示頂ければ幸いでございます。 質問が分かりにくくて申し訳ありません。 恐れ入りますが、何卒よろしくお願い申し上げます。 テーブル結合について テーブルの結合についてお聞きしたいことがあります。 カラム「KEY」を結合条件に テーブルA、B、Cを結合して【取りたい結果】のようなデータを取りたいと思っています。 しかし、テーブルAにBとCをLEFT JOINを結合した所、 【取得された結果】のデータが取得されました。 どのような結合をしたら期待通りの結果が得られるのでしょうか? 回答宜しくお願いします。 【取得された結果】 key dataA dataB dataC ------------------------------------------------- 1 A-1 B-1 C-1 A-1 B-1 C-2 A-1 B-1 C-3 2 A-2 3 A-3 【取りたい結果】 key dataA dataB dataC ------------------------------------------------- 1 A-1 B-1 C-1 A-1 C-2 A-1 C-3 2 A-2 3 A-3 【テーブルA】 key dataA --------------------- 1 A-1 2 A-2 3 A-3 【テーブルB】 key dataB --------------------- 1 B-1 【テーブルC】 key dataC --------------------- 1 C-1 1 C-2 1 C-3 フィールド数の多すぎる・フィールド数が一定でないテーブルのデータ結合の仕方? 私は、accessについてあまり詳しくないものなのですが、仕事上50近くあるデータを一つにまとめたいんです。 データは2つありまして、 1.それぞれのテーブルが微妙にフィールド数が異なる場合の結合 例)・Aのテーブルのフィールド名 名前 クラス名 出身県 出身コード 血液型 性別 ・Bのテーブルのフィールド名 名前 出身県 血液型 性別 ・Cのテーブルのフィールド名 名前 クラス名 出身コード 血液型 ⇒このように微妙に異なる。しかもレコード数がかなり多いのです。これは、ユニオンクエリは使えないですよね?何かいい方法はないでしょうか? 2.テーブルの構造は同じなのですが、フィールド数が多くてユニオンクエリを使おうとすると、『フィールド数が多すぎる』とエラーメッセージがでてしまう。この場合の対処方法でいいのはないでしょうか? なにぶん、私はaccessをあまり使わないのでわかりにくい質問だと思いますが、どなたかすみませんが教えてください。お願いします。 アクセスで複数フィールドを結合して1フィールドを作る際 こんにちは。 OSはWIN2KでAccess2000を使用しております。 「T_データ」テーブルには、 社員コード(数値型)、社員名(テキスト型)、 給料(数値型)、住所(テキスト型)フィールドがあります。 この4つのフィールドを以下の条件を満たしつつ 「T_結合」テーブルの「結合データ」フィールドという 一つのフィールド(テキスト型)に追加したいのです。 ------------------------------------------------ 1.社員コードは 5桁、社員名は半角30桁、 給料は10桁、住所は全角20桁。 2.社員コード、給料は右詰とし残りは0で、 社員名、住所は左詰とし、残りは空白("")で埋める。 ------------------------------------------------- 最終的に「T_結合」テーブルを1レコード85バイトの レコードとしてエクスポートするのが目標です。 アクセスはUnicodeで管理されているというので単純には いかなそうなので、どなたかご教授願います。 テーブル結合で、結合フィールドをWHERE句に用いた時に、結合フィールドのデータがNULLになってしまう。 MySQL 4.0.24-standard + PHP Version 4.3.11 を使用しています。 下記のような table_a, table_b があり、idフィールドで外部結合させています。 table_a id|value ------- 1 | 0 2 | 1 table_b id|name ------- 1 | A 2 | B SELECT * FROM table_a NATURAL LEFT OUTER JOIN table_b; result id|value|name -------------- 1 | 0 | A 2 | 1 | B しかし、下記のクエリでは、このようにidがNULLになってしまいます。 SELECT * FROM table_a NATURAL LEFT OUTER JOIN table_b WHERE table_a.id = 1; result id |value|name -------------- NULL| 0 | A 以下のような結果を得たいのですが、どうすれば良いのでしょうか? result id|value|name -------------- 1 | 0 | A 家のネットワークを最適にできますか?:知っておくべきポイント OKWAVE コラム テーブルの結合について テーブル結合に関するSQL文について質問させてもらいます。 DBはSQLServer2005です。 下記のような二つのテーブルがあります。 テーブルA コード A111 A111B A222 A333 テーブルB コード 数量 A111 1 A111B 2 A222 3 A222B 4 上記2つのテーブルから下記の結果を表示させたいのです。 コード 数量 A111 1 A111B 2 A222 7 A333 0 テーブルBのコードがテーブルAにある場合、そのまま数量を表示。 ない場合、コードの4桁目まででサマリした合計値を表示させたい。 LEFT JOIN等をいろいろためしてみたのですがうまくいきません。 おわかりの方、方教えてください。 アクセス95の結合について (初心者です) アクセスの結合のことでおうかがいしたいのですが、 結合プロパティで 「Aの全レコードとBの同じ結合フィールドのレコードだけを含める」 を選択しているのですが、 結果はAとBで一致しているもののみになってしまいます。 原因は何が考えられるでしょうか? よろしくお願いします。 Accessで、別のテーブルにある同じフィールドを結合する(至急) いつも大変お世話になっております。m(_ _)m 分かりましたら、至急お願いしたいのですが Accessで、別々のテーブル(またはクエリ)に同じ「型番」「数量」というフィールドがあって、それぞれ別々の情報が入っています。 それを、1つに結合することは可能ですか? 例) テーブルA: 型番/数量 ABC/5 DEF/3 テーブルB: GHI/2 JKL/3 この2つのテーブル(A・B)を1つのフィールドに表示したい。 型番/数量 ABC/5 DEF/3 GHI/2 JKL/3 というように。。。 Accessの基本にのっとっていないのかもしれませんが、何とかできたらと思います。できるだけ簡単な方法で・・・ どうぞよろしくお願いします。 キーのフィールドが最大値の他フィールドのデータ抽出 下記のようなテーブルがあったとします。 ---------------------- (1) | (2) | (3) ---------------------- A | 3 | あ A | 1 | い A | 5 | う B | 3 | え B | 2 | お ---------------------- フィールド(1)がグループで、それぞれAグループ、 Bグループとします。 このとき、それぞれのグループ内のフィールド(2)が 最大のレコードのフィールド(3)データを抽出したいのですが、 どのようにすればよいでしょうか? 上記の例で言うと、 ---------------------- (1) | (2) | (3) ---------------------- A | 5 | う B | 3 | え ---------------------- という結果を得たいのですが・・・ Accessで異なる数を、複数のフィールドに結合 Acsess初心者です。クエリでの結合(紐付け?)方法について質問いたします。 2つのテーブルから、各2つずつのフィールドを結合したいのですが、 以下の条件でそれぞれを同値であるようにしたいのです。 テーブルAには、フィールドp、フィールドqが入っています。 テーブルBには、フィールドr、フィールドsが入っています。 ※m、nは1以上の整数です ・(フィールドp、フィールドq)=(0、n)のとき、(フィールドr、フィールドs)=(2、n)と同値とする ・(フィールドp、フィールドq)=(m、n)のとき、(フィールドr、フィールドs)=(1、m)と同値とする 上記2点で、2つのテーブルを結合することは可能でしょうか? テーブルを結合 テーブルの結合に関して質問します。 ネットなどでinner joinを使った複数のテーブル結合が参考として 書いてあったのですが(3つまで), 4つテーブルを結合する事は 出来るのでしょうか? A,B,CテーブルにはID,NAMEがあります。 DテーブルにはA,B,CテーブルのIDがあります。 参考サイトを見て3つのテーブルを結合するSQLが以下になります。 SELECT a.name, b.name, c.name FROM a INNER JOIN (b INNER JOIN c ON b.id = c.id) ON a.id = c.id よろしければアドバイスお願いします。 テーブルの結合について うまく動作しなくて、困っております。 MySQLを利用しており、その際のテーブルの結合で困っています。 table a +-+--+ |id|col| +-+--+ | 1|A| | 2|B| | 3|C| | 4|D| | 5|E| +-+--+ table b +-+--+ |id|col| +-+--+ | 2|G| | 5|G| | 6|G| +-+--+ 上記テーブルを結合し、下記のようにしたいのですが・・・。 +-+--+ |id|col| +-+--+ | 1|A| | 2|B| | 3|C| | 4|D| | 5|E| | 6|G| +-+--+ 参考書・Webから探してみましたが、 見つかりませんでした。 よろしくお願い致します。 別のテーブルのフィールドを抽出項目にするには? 別のテーブルのフィールドを抽出項目にするには? Access初心者です。 申し訳ありませんが、急ぎ回答いただきたく思います。 どうか宜しくお願いいたします。 お伺いしたい内容は、 データが多く、抽出条件も多いので、 別のテーブルのフィールドに入っている単語を使い、 抽出したい元データのレコードをあいまい検索して非表示にしたいです。 データの内容は下記になります。 --------------------------------------- 元データ(テーブル1とテーブル2から結合したクエリ(名前は元データ) フィールド1 フィールド2 ID-1 りんご ID-2 バナナ ・ ・ ・ ・ ・ ・ ID-2000 チェリー --------------------------------------- --------------------------------------- 除外リスト(テーブル3。名前は除外リスト) フィールド1 りんご チェリー ・ ・ ・ --------------------------------------- 元データのフィールド2に Not Like "*りんご*" And Not Like "*チェリー*" と記述すれば、フィールド2にりんご、チェリーを含むレコード以外のものが表示され、 欲しい情報が手に入るのですが、(上記例だとバナナのみ表示される) 実際にはりんご、チェリーなどあいまい検索し、非表示にしたいキーワードが100個あります。 なので、除外リストというテーブルをつくり、 そのフィールド内に書かれたキーワードを使い Not Like "*りんご*" And Not Like "*チェリー*" と同じような表示結果になるようにしたいのですが、 やり方が調べてもどうしてもわかりません。 どうか皆様のお力を貸してください。 宜しくお願いいたします。
お礼
遅くなりましたが ご説明も分かりやすく、すぐ対応できました。 どうもありがとうございました。