質問をすることでしか得られない、回答やアドバイスがある。Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。JavaJavaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。(RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。格納したデータを引き出すことも可能です。Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。JavaJavaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。(RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。格納したデータを引き出すことも可能です。12:02前提まず例として、企業の合併情報を管理している下記のようなテーブルがあるとします。現時点で一番親の会社はA社ですが、このA社の情報を取得する際に紐づくすべての子会社の情報も取ってきたいです。(A社の直属の子会社であるB社、C社だけでなくB社の子会社、その下のE社の子会社も取りたい)上記の子会社情報を階層のない1つのリストするのが最終目標です。最初はA社の直属とその下(B社の子会社)まで取ってくる仕様でしたので、今の実装では合併明細テーブルにAAAで検索をかけて取得したリストをループ→その中で更に合併明細にBBB、CCCで検索かけてリストに追加という形で一度だけループをしています。調べてもなかなかいい方法が出てこず困っています。JavaでもSQLでも構いませんので何かアドバイスをいただけたら幸いです。言葉足らずな部分ありましたら補足しますのでコメントください。ベストアンサーを参考に組んだSQLです。temp;取得結果ご協力いただいた皆様ありがとうございました。クリップ1気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。下記のような質問は推奨されていません。適切な質問に修正を依頼しましょう。03:02ありがとうございます。階層問い合わせについて知らなかったので勉強します。いう機能があるんですね。こっちの方がいいですね。合併明細テーブルはツリー構造なので、再帰を使用すれば取得できると思います。ような回答は推奨されていません。質問の回答になっていない投稿スパムや攻撃的な表現を用いた投稿このような回答には修正を依頼しましょう。11:46階層問い合わせとはまた別に再起問い合わせというものがあるんですね。本当にありがとうございます。普通になぞっているだけですが。ような回答は推奨されていません。質問の回答になっていない投稿スパムや攻撃的な表現を用いた投稿このような回答には修正を依頼しましょう。ご参考:https://www.wantedly.com/companies/autoro/post_articles/299434https://bbh.bz/2020/07/18/tree-structure-in-rdb/そもそもデータ構造がよくない気がします。子会社をフラットにもったテーブルを作り、会社情報変動時にレコード再作成してはどうでしょうか。本題と関係ないですが、下記が気になりました。いう関係性が出てくるのがしっくりこない・あるタイミングの合併において、どの会社と合併したのかという情報が見えなくなっている。そもそも「合併ID」があるべきでは。ような回答は推奨されていません。質問の回答になっていない投稿スパムや攻撃的な表現を用いた投稿このような回答には修正を依頼しましょう。03:50ありがとうございます。合併したら新しい会社ができて合併元の会社と親子関係になる、という動きをするので親会社・子会社という表現を使いました。一般的な企業間の合併とは少し感じが違うかもしれないです。分かりづらくしてしまいすみません。どちらかではないでしょうか。頻度やデータ件数によるのではと思います。08:56具体的に方法を示していただきありがとうございます。回答に記載くださった記事も読みましたがそもそものデータ構造がこういうデータの取得に向いていないかもしれない、という発想は自分にはなかったので勉強になりました。コメントにいただいていた階層問い合わせも含め、検討しようと思います。行動規範の内容に同意します質問の解決につながる回答をしましょう。サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。読む側のことを考えた、分かりやすい文章を心がけましょう。?回答20クリップ0更新2023/05/16Q&A解決済OpenCVで画像の輪郭の複雑さを数値化したいです。勤務時間のオリジナル関数を作りたい。Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。JavaJavaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。(RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。格納したデータを引き出すことも可能です。Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。JavaJavaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。(RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。格納したデータを引き出すことも可能です。