- ベストアンサー
テーブル結合について(トランテーブル同士の結合)
データベースの種別はなく、一般的な質問を書かせて頂きます。 データベースの勉強を、最近始めました。 初心者で一般的な質問なのですが、タイトルに書きましたとおり、 テーブル結合で、一般的には、マスターテーブルと実データテーブルを結合 するのが一般的かと思うのですが、 ”実データテーブルと実データテーブルを結合する”という場合は、どういった理由や、利用シーンで使うのでしょうか? 例などを知りたいと思い、質問を書かせていただきました。 抽象的でわかりずらい場合は、ご指摘ください。 どうぞ宜しくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
たとえば、不定数の繰り返しデータがある場合が考えられます。 他にもあるのかもしれませんが、このパターンしか思いつきません。 あえて人工的な例を出しますので、ちょっとわざとらしいかもしれ ませんが、オンラインショップの売上の履歴を管理するために、以 下のような2つのテーブルを用意したとします。 売上テーブル(売上ID, ユーザID, 日時, 合計金額, 支払方法, ・・・) 売上明細テーブル(売上ID, 明細ID, 商品ID, 数量, 金額) 1回の売上に対して、複数商品の明細があり得るので、この場合は テーブルを2つに分ける方が無駄がなく、また、明細数がいくら多くて も扱えるようになります。 たとえば、2006/4/1 以降に商品Aを買った人に抽選でプレゼントを することになっているので、その対象のユーザIDを知りたいとします。 普通に考えると、以下のようなSQLになります。 (細かい文法の正しさはぬきにして) SELECT DISTINCT A.ユーザID FROM 売上テーブル AS A INNER JOIN 売上明細テーブル AS B ON (A.売上ID=B.売上ID) WHERE B.商品ID='A' AND A.日時 >= '2006/4/1'
お礼
ありがとうございます。 利用シーンが思い浮かばず、悩んでいたのですが、上記のような例があるのですね。売上のトランテーブルを2つ作る必要がある、といった説明も併せて いただいので大変理解できました。 遅い時間に回答いただきまして、ありがとうございました。 今回こちらのサイトを始めて使わせていただいたのですが、今後も、是非活用させていただき、皆さんの知恵を学びたいと思います。 今後とも、宜しくお願いいたします。