• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:sql文の書き方について)

SQL文の書き方について

このQ&Aのポイント
  • SQL文の書き方について質問があります。2つの表を結合し、特定の形式で表示したいのですが、どのようなSQL文を書けば良いのでしょうか?
  • 質問の内容は、2つの表を結合して特定の形式で表示するためのSQL文についてです。
  • 具体的な形式は文章中に記載していますので、それに合わせたSQL文を教えていただけると助かります。

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

  • ベストアンサー
  • -0-y
  • ベストアンサー率36% (4/11)
回答No.2

<A><B>のテーブル名がありませんので、 仮に、テーブル名を <A>・・・TABLE_A <B>・・・TABLE_B とするなら、SQL文でテーブル結合することで行えます。 SELECT TA.商品,             …(4) TA.商品番号,          …(4) TB.会社名,           …(5) TA.単価             …(4) FROM TABLE_A AS TA        …(1) INNER JOIN TABLE_B AS TB        …(2) ON TA.商品番号 = TB.商品番号 …(3) 回答としては上記になります。 (1)<A>の表(テーブル)を基準にして、 (2)<B>の表(テーブル)をJOIN(結合)します。   ※AS TAの「TA」部分はTABLE_Aの別名です。    TABLE_Aという名称をTAという代わりの名前で使用できます。    もともとのテーブル名が名前が長いときなどに、略称等で使用する場合などに便利です。       構文) テーブル名 AS テーブル代名    ちなみに、この別名のことをエイリアスといいます。 (3)<A>と<B>の表を結合付ける条件です。   ここが一番重要なポイントで、 <A>と<B>の項目を見比べたときに、<A>のどの項目から、   会社名を持ってこれるかを考えてください。   <A>の商品番号と<B>の商品番号を紐づけると、   <B>の会社名が持ってこれますよね。   ※すでにご存知かもしれませんが、表(テーブル)同士を結合するときに重要なのは    テーブルのキー項目が何であるかという事を意識するとわかりやすいと思います。      (4)で取得出力したい、項目名をSELECT句に、カンマ'区切り(,)で指定します。 (4)の部分では、表<A>の項目を並べています。 (5)3番目の列に、表<B>の会社名を並べています。 ここまでがSQl文の内容です。 ※上記のSQL文では、INNER JOIN (内部結合)というものを使用しています。    結合する方法にもいくつかありまして、下記のようなものがあります。     LEFT OUTER JOIN (左外部結合)     RIGHT OUTER JOIN (右外部結合)     FULL OUTER JOIN (完全外部結合)     当質問が解決したら、興味があれば調べてみると良いと思います。     まずはこの編から、覚えて押さえておきましょう。使い方は上記のキーワードで探せば     ネットを調べればわかりますので、ご自身で頑張ってみてください。 <C>については、下記ヒントだけ書いておきます。 From TABLE_C AS TC1 INNER JOIN TABLE_C AS TC2 ON <この部分は自分で考えてみてください。> 商品とグループをどう紐づけるかですよね。 あとは頑張ってみてください。

ryiryilp
質問者

お礼

回答ありがとうございます。 この問題に関しては、自分でなんとか解決していましたが、-0-y様の回答は、調べたどのサイトより分かりやすく理解することができました。 また何かありましたらよろしくお願いします。

その他の回答 (1)

  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

このsqlの質問は多数寄せられますが、 答えをコピーするだけでは進歩しませんよ。 sqlの動作を勉強したらできるできないを含め、 応用も効くと思うのですが?

関連するQ&A