- ベストアンサー
SQL文の書き方について
- SQL文の書き方について質問があります。2つの表を結合し、特定の形式で表示したいのですが、どのようなSQL文を書けば良いのでしょうか?
- 質問の内容は、2つの表を結合して特定の形式で表示するためのSQL文についてです。
- 具体的な形式は文章中に記載していますので、それに合わせたSQL文を教えていただけると助かります。
- みんなの回答 (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 <この部分は自分で考えてみてください。> 商品とグループをどう紐づけるかですよね。 あとは頑張ってみてください。
その他の回答 (1)
- maiko0318
- ベストアンサー率21% (1483/6969)
このsqlの質問は多数寄せられますが、 答えをコピーするだけでは進歩しませんよ。 sqlの動作を勉強したらできるできないを含め、 応用も効くと思うのですが?
お礼
回答ありがとうございます。 この問題に関しては、自分でなんとか解決していましたが、-0-y様の回答は、調べたどのサイトより分かりやすく理解することができました。 また何かありましたらよろしくお願いします。