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

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

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

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

Oracle

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

SQL

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

再帰

情報工学における再帰とは、プログラムのあるメソッドの処理上で自身のメソッドが再び呼び出されている処理の事をいいます。

Q&A

0回答

1917閲覧

再帰問い合わせで階層1と階層3を並べて表示させるSQLの書き方

yoshit

総合スコア12

Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

Oracle

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

SQL

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

再帰

情報工学における再帰とは、プログラムのあるメソッドの処理上で自身のメソッドが再び呼び出されている処理の事をいいます。

0グッド

2クリップ

投稿2020/10/28 02:17

編集2020/10/28 05:10

追記
Orlofsky様
表に誤りがありました、申し訳ないです。
create tableとinsert tableも追記させて頂きます。
1階層目のOYAと3階層めのKOを表示したいというのがやりたい事です。

sql

1CREATE TABLE BOM ( 2 OYA VARCHAR2(20) NOT NULL, 3 KO VARCHAR2(20) NOT NULL, 4 KAZU NUMBER NOT NULL 5); 6 7ALTER TABLE BOM ADD CONSTRAINT BOM_PK PRIMARY KEY (OYA, KO);

sql

1INSERT INTO BOM(OYA, KO, KAZU) VALUES ('A', 'B', 1); 2INSERT INTO BOM(OYA, KO, KAZU) VALUES ('B', 'C', 1); 3INSERT INTO BOM(OYA, KO, KAZU) VALUES ('C', 'D', 1); 4INSERT INTO BOM(OYA, KO, KAZU) VALUES ('AA', 'BB', 1); 5INSERT INTO BOM(OYA, KO, KAZU) VALUES ('BB', 'CC', 1); 6INSERT INTO BOM(OYA, KO, KAZU) VALUES ('CC', 'DD', 1);

環境
Oracle 12 x64
Windows Server 2019 Standard x64

実現したいこと
以下のようなBOMテーブルがあります。
(修正しました)

OYAKOKAZU
AB1
BC1
CD1
AABB1
BBCC1
CCDD1

これをこういった表として出力したいのですが、どういったSQLを書けばよいのかわからず質問させて頂きます。

AD
AADD

再帰SQLの書き方をググって試してみたのですが、いまいちピンときませんでした。
Oracleには階層問い合わせというのもあると見たので、そちらでも構いません。
こうやって検索すると良い等のヒントなどでも結構です。何卒よろしくお願いいたします。

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

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

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

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

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

Orlofsky

2020/10/28 02:40

SELECT されるテーブルは CREATE TABLE されていないといけません。データも INSERTされている必要があります。 テーブル定義をCREATE TABLE文に、データを INSERT文に https://teratail.com/help/question-tips#questionTips3-7 の [コード] に修正して提示できると動作確認し易いから適切なコメントが付くのでは?
Orlofsky

2020/10/28 02:44

BOMテーブル 1行目の子 B は2行目の親 B に等しいデータとして 2行目の子 C は3行目の親 D に等しくないから3行目の子を取得したい、ってこと? 質問に説明を追加してください。
yambejp

2020/10/28 03:05

このテーブル構成がマストな仕様ですか? 入れ子モデルにすると管理が楽になりますが・・・
yoshit

2020/10/28 05:11

yambejp様 テーブル自体自分が作ったものではなく、変更できない為この構成がマストになります。 入れ子モデルというのは今後の為に調べてみます、コメントありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問