二つのテーブルを比較して異なるデータを抽出するSQL構文の作成方法

このQ&Aのポイント
  • 二つのテーブルを比較して、Aテーブルにない品物や異なる産地や個数や味評価を持つデータを抽出する方法について教えてください。
  • 結果としては、品物名が同じであるがAテーブルとBテーブルで異なる値を持つ項目を取得します。
  • 具体的なSQL構文の記述方法や結果のイメージを提示していただけると助かります。
回答を見る
  • ベストアンサー

データの全項目比較について

いいやり方があれば、おしえてください。 テーブルA************** みかん おいしい 100個 静岡産 りんご 赤い   20個 青森産 きゃべつ 春物  10個 北海道産 テーブルB************* みかん まずい 30個 静岡産 りんご 赤い  20個 新潟産 このような二つのテーブルがあるとして、 検索によって、Aテーブルにないもの(きゃべつ)と、 さらにAテーブルとBテーブルの品物名は同じだけど、産地や個数や味評価がことなるものを取り出すSQL構文はありませんか? (紐付けは品物名でします) 希望する結果はこうです。 結果**** みかん おいしい まずい 100個 30個  NULL(等しいので) NULL りんご NULL  NULL NULL  NULL 青森産 新潟産 きゃべつ NULL 春物 NULL 10個 NULL 北海道産 NULL ちなみに、対象の項目は、本当は100個ほどあるのですが・・・。 どうぞよろしくお願いします。

  • MySQL
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

AにBをLEFT JOINして IF(A.評価=B.評価,NULL,A.評価) 的な書き方を羅列していけば?

chelny
質問者

お礼

うーん。やっぱりそうですよね。。(><) それが、すごく項目数が多かったので、何かいい方法はないかしら・・とおもったのですが。。 でも、アドバイスいただいたとおりの方法でがんばってやってみることにします!ありがとうございました。

関連するQ&A

  • excelのデータを検索して行項目全てを取出したい

    excelのデータを検索して行項目全てを取出したいです。 下記のようにシート1に番号を用意してシート2のデータを行で取り出したいです。 宜しくお願いします。 <例> (シート1) 検索 番号 A0001 A0002 B0001 (シート2) データ 番号 品名   産地  etc,,, A0001  りんご  青森 A0002  みかん  愛媛 A0003 トマト   熊本 B0001 鯖    大分 B0002  にしん  北海道 (結果) A0001  りんご  青森 A0002  みかん  愛媛 B0001 鯖    大分

  • Accessのクエリーで。

    テーブルA ID テーブルB ID 年 種類 テーブルC ID 年 種類 備考 テーブルCはBの詳細をかいたようなものになっていて、希望した時だけみられるようになっています(クリックする)。 これらのテーブルをもとにクエリーを作成しました。 テーブルA-B-Cの「ID」でリレーションがされています。 B-Cの「年」もリレーションされています。 たとえば、10というIDの人がいて、2001年と2002年のデータがあったとします。 ID | 年   | 種類 | 備考 10 | 2001 | みかん | 10 | 2002 | りんご | 青森産 10 | 2002 | みかん |愛媛産 10 | 2002 | めろん | というような感じだとします。 これがそれぞれABCに入っています。 クエリーのリレーションで「種類」にリレーションを貼らないと、 10 | 2002 | りんご | 青森産 10 | 2002 | りんご | 愛媛産 10 | 2002 | りんご | 10 | 2002 | みかん | 青森産 10 | 2002 | みかん | 愛媛産 10 | 2002 | みかん | 10 | 2002 | めろん | 青森産 10 | 2002 | めろん | 愛媛産 10 | 2002 | めろん | とダブッてしまい、「種類」でリレーションをはると 10 | 2002 | りんご | 青森産 10 | 2002 | みかん | 愛媛産 と、備考に何かが入ってるものしか出なくなってしまいます。 これを回避するにはどのようにしたらいいのでしょうか? よろしくお願いします。 AC2000です。

  • ACCESSのデータ抽出について

    項目が同じ(1)テーブルと(2)テーブルと(3)の産地データをリレーションシップでつなぎデータ■クエリ_結果2のように抽出したいのですが■クエリ_結果2のちょうに重複するデータしか抽出できません。 どうしたら結果1のように全ての商品を抽出できるでしょうか? アクセス初心者です。よろしいくお願いします (1)テーブル【中央11月データ】 バナナ 50 りんご 10 ミカン 100 (2)テーブル【関西11月データ】 バナナ 30 梨 60 (3)産地データ バナナ フィリピン りんご 青森 みかん 愛媛 梨 千葉 ■クエリ_結果1 バナナ フィリピン 80 りんご 青森 10 みかん 愛媛 100 梨 千葉 60 ■クエリ_結果2 バナナ フィリピン 80

  • 2つのmdbのリレーション

    A.mdbのAテーブル「名称」「数」「場所」「値段」のフィールドがあり、名称1つに付き1レコードが存在しています。 りんご   100   青森   200 梨     90    山梨   300 キャベツ  200   愛知   250 ... B.mdbのBテーブルには「日時」「名称」「数」「場所」のフィールドが、日毎に1レコードずつ存在しています 9月1日   りんご   100   青森 9月3日   りんご   190   青森 9月3日   りんご   120   青森 9月7日   梨     100   山梨 9月8日   梨     90    山梨 9月11日   キャベツ  200   愛知 ... この2つのmdbを1つのテーブルに纏めたいのですが可能でしょうか? 名称りんごで検索するとAテーブルの「値段」も引っ張れてBテーブルの「日時」も引っ張れる形にしたいのですが・・・。

  • エクセルで重複データの編集

    次のようなデータがあります。     商品名 | 産地 | 店名 | 1行  みかん   静岡   あ 2行  りんご   青森   い 3行  みかん   愛媛   う 4行  みかん   静岡   え 5行  りんご   長野   お 6行  みかん   愛媛   か            実際には列の項目はもっとあります。 行も3万件ほどあります。 これを「商品名」「産地」などの重複する行を 一つにまとめ「店名」のみを結合した表を作成したいです。     商品名 | 産地 | 店名 | 1行  みかん   静岡   あ・え 2行  りんご   青森   い 3行  みかん   愛媛   う・か 4行  りんご   長野   お 重複データの抽出・削除だけでなく、一部分を 結合させて表示させる方法がわかりません。 よろしくお願いします。

  • アクセスの2つのテーブルから重複しないものを抜き出す方法について

    アクセスの2つのテーブルから重複しないものを抜き出す方法について 例えば テーブル Aには ID   価格    商品   1  200    りんご   2  150    みかん   3  180    りんご   4  230    いちご テーブル Bには   1  150    みかん   2  180    りんご とあった場合 A-B のクエリーを実行して   1  200    りんご   2  230    いちご という結果を得たいのですが、どのようにすれば出来るのでしょうか よろしくお願いします。

  • 二つの表の項目を比較して値を取得するSQL

    お世話になります、 二つの表の項目を比較して値を取得するSQLを作成しているのですが、うまくいきません。 具体的には Aテーブル NAME | PRICE ------|------ リンゴ | 100 ------|------ オレンジ | 200 ------|------ ブドウ | 300 ------|------ Bテーブル NAME | PRICE ------|------ リンゴ | 1000 ------|------ オレンジ | 200 ------|------ ブドウ | 1300 ------|------ という二つのテーブルA、Bがあったとします。 このA,Bの二つのテーブルのそれぞれの果物のPRAICEを比較してBのPRICEがアップしている果物を出力するという SQLを教えてください。 <ほしい結果> NAME | PRICE ------|------ リンゴ | 1000 ------|------ ブドウ | 1300 よろしくお願いします。

  • (EXCEL)重複したデーターの抽出について

    EXCEL2003 シート「sheet1」に下記のようなデーターがあります。 <sheet1>   A   B   C  D 1 りんご 青森 AAA BBB 2 みかん 愛媛 CCC DDD 3 みかん 青森 AAA BBB 4 りんご 青森 AAA BBB 5 みかん 愛媛 CCC DDD A列とB列が同じ値のものをシート「sheet2」に重複しているデーター は1行だけになり、E列にカウントした数が入力されるようにしたいです。 (C列やD列は同じ値でなくてもA列とB列が同じ値の時にカウントして抽出したいです) <sheet2>   A   B   C  D   E  りんご 青森 AAA BBB  2  みかん 愛媛 CCC DDD  2   ご教示のほどお願いします。

  • 二つのデータを比較してデータを自動でコピペしたい

    Sheet1「元データ」                 A   B    C   D     1 0001 みかん  A店  3/1  2 0200 りんご B店  3 0311 いちご B店  3/10 4    いちじく C店 5 0360 メロン  D店 6 かき   P店 7 0312 キウイ  D店 Sheet2「最新データ」   A   B    C   D 1 0001 みかん  A店  3/1 2 0190 3 0200 りんご B店  4 0311 いちご B店  3/10 5 0422 洋ナシ C店 6 0250 7 0500 すいか  P店  8 0312 キウイ というデータがあり、Sheet1のデータで、Sheet2には無いものがあったら、Sheet2に追加をしたいのですが、どのようにすればよいのか、さっぱりで困っています。何かヒントなどを戴きたいと思います。 よろしくお願いします。 こんな感じにしたいです。 Sheet2「最新データ」   A   B    C   D 1 0001 みかん  A店  3/1 2 0190 3 0200 りんご B店  4 0311 いちご B店  3/10 5 0422 洋ナシ C店 6 0250 7 0500 すいか  P店  8 0312 キウイ 9     いちじく C店 10 0360 メロン  D店 11 かき   P店  

  • Accessで重複データを結合するには?

    こんにちわ、みなさん。 Access超初心者です。よろしくお願いします。 Accessのテーブルで下記のようなデータがあるとします。  店名  | 商品 |  A店  |リンゴ |  A店  |トマト |  A店  |ナシ  |  B店  |リンゴ |  B店  |みかん | これを下記のように店名ごとに商品名を結合したいのです。 (レポートではなく、テーブルにしたいです)  店名  | 商品        |  A店  |リンゴ;トマト;ナシ |  B店  |リンゴ;みかん    |   重複クエリーを使えばと思ったのですが、 思ったとおりにはなりませんでした。。 どうぞ、よろしくお願い致します。m(__)m ---------------------------------------- OSは、Windows 98 アプリケーションは、Access 2000 です ----------------------------------------