質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

SQL

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

Q&A

解決済

3回答

1667閲覧

SQLでin句を使った問い合わせがわかりません。

walla

総合スコア11

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

SQL

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

0グッド

0クリップ

投稿2016/04/13 06:57

###前提・実現したいこと
IN句を用いてSQLで以下のようなことをしたいです。
TBL_Aで、STOCK_A(保管数量)が10000のcust_kozano(顧客口座)と一致する顧客の情報をTBL_Bで取得する。(TBL_Bの顧客口座カラムはKYAK_PID)

###発生している問題・エラーメッセージ
SQL初心者のためIN句の使い方などがわからずどう書いていいのかわかりません。

エラーメッセージ

###該当のソースコード

ここにご自身が実行したソースコードを書いてください

###試したこと
課題に対してアプローチしたことを記載してください

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

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

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

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

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

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

guest

回答3

0

テーブル構成が書かれていないので
具体的にSQLを書くことはできませんが、
"SQL IN 副問い合わせ"
で検索したら
書き方とか出てきませんか?

投稿2016/04/13 07:03

kutsulog

総合スコア985

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

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

0

ベストアンサー

うーん、こんな感じでしょうか。

SQL

1SELECT * FROM TBL_B 2WHERE KYAK_PID IN (SELECT cust_kozano FROM TBL_A WHERE STOCK_A = 10000)

どちらかと言えばEXISTSの方がメジャーです。

SQL

1SELECT * FROM TBL_B 2WHERE EXISTS ( 3 SELECT * FROM TBL_A 4 TBL_A.cust_kozano = TBL_B.KYAK_PID 5 WHERE STOCK_A = 10000 6)

試してないので動かなかったらすみません。

投稿2016/04/13 07:09

編集2016/04/13 07:18
lilithchan

総合スコア249

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

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

walla

2016/04/13 07:12

ありがとうございます。IN句について学習しているのでIN句を使う場合どのようになるのかご教授いただけますでしょうか?
root_jp

2016/04/13 07:29

1つ目のSQLでIN句を使った例を書いてくれてますよね。。。
lilithchan

2016/04/13 07:41

root_jpさん 最初に変身した内容が私の仕様認識ミスで間違っており、その投稿に対して返信いただいた内容です。 ↑の内容は修正済みなのでIN句が入っています。 紛らわしくてすみません。
walla

2016/04/13 07:47

lilithchanさん IN句の方動きました。大変助かりました。またEXISTSの方も試したいと思います。 ありがとうございます!!
kutsulog

2016/04/13 07:53

EXISTSのほうの副問い合わせは > TBL_A.cust_kozano = TBL_B.KYAK_PID > WHERE STOCK_A = 10000 ここが > WHERE TBL_A.cust_kozano = TBL_B.KYAK_PID > AND STOCK_A = 10000 でないと動かないと思います
lilithchan

2016/04/13 07:56

ミスばっかですみません。。 ごもっともです。。
walla

2016/04/14 13:05

kutsulogさん ありがとうございます。ご指摘を取り込んだ結果、EXIST句の方も動きました。
guest

0

inには2通り使い方があります。
こちらが参考になるかと。
IN演算子
IN句を用いた副問合せ

投稿2016/04/13 07:34

編集2016/04/13 07:36
kaputaros

総合スコア1844

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問