🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

547閲覧

sqlの複数件の副問合せ

mmmyu-ma

総合スコア6

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2019/12/23 12:26

前提・実現したいこと

初心者の為、用語の間違いなどあればご指摘頂けると有難いです。
質問ですが、複数テーブルを利用したSQLで、複数件の問い合わせ結果を利用して更に検索を行うという処理を1つのSQLで行いたいです。

例えば果物テーブルのりんご、梨、いちごなどがあり、飲食テーブルに食べた日時や味の感想というカラムがあります。
そして品種テーブルに王林やフジ、21世紀梨などがあった場合に、抽出したい項目は果物テーブルの情報ですが、それを飲食テーブルの食べた日時、品種テーブルの品種を交えて抽出したいのです。
この時、各テーブルのキーとして、果物テーブルの種類と飲食テーブルの種類、果物テーブルの品種と品種テーブルの品種、飲食テーブルの味と品種テーブルの味がそれぞれのキーです。

試したこと

果物テーブルのSELECTに対して、副問合せでそれぞれ飲食テーブルと果物テーブルを検索したのですが、飲食テーブルの検索結果を用いて果物テーブルを検索した際にうまく検索結果が取得できません。

得たい結果として、
りんご、12月に食べた、王林。
梨、8月に食べた、21世紀梨。
梨、10月に食べた、幸水。
いちご、12月に食べた、あまおう。
りんご、12月に食べた、フジ。
というような具合です。
少し説明が難しいのですが、要約すると、SELECTで返ってきた複数件の結果を元に副問合せで更に検索し、その結果を元に再度副問合せで検索したい時の文法や行い方です。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/12/23 12:28

具体的なテーブルの定義(CREATE文)を提示し、サンプルデータをもってどういう結果を得たいのか例示された方がアドバイスが得られやすいと思います。 (調べたこと試したこと、実際のコードなどあればより良いです)
guest

回答1

0

ベストアンサー

テーブル構造が分からない部分もありますがこのパターンは副問合せではなく
単純に内部もしくは外部結合ではだめでしょうか。

食べた果物に対して日時や種類を取得すると仮定すれば、飲食テーブルに対して
その他のテーブルを内部結合すればよいかと。
(感想等がないことがあるなら外部結合ですね)

果物テーブルにあるデータに対してであれば果物テーブルに対して
結合する感じです。この場合も外部結合であれば果物テーブルのデータ全て出力されます。

副問合せで結果を得なければならない理由があるのでしょうか?

投稿2019/12/24 10:38

polupolu_0218

総合スコア65

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問