2011-12-20 13 views
0

私は独特な状況があります。私のMySQLデータベースでは、約90個の奇妙なテーブルがあり、ほとんどのテーブルは索引付けされています(私たちはINNODBを使用しています)。テーブルの中には、このようなリンクを持っている:関連テーブルのトラバースリスト

Aを - > B - > C-> D-> E

は、私はすべてのサブ子のリストを見つけることができます-に方法はあります私はテーブルAとEだけで作業する必要がありますテーブル?私は動的クエリビルダーの仕組みを持っています。そのために、テーブルのリストを使ってユーザをリストアップし、上記のような状況では、テーブル "A"と "E"だけから必要な情報を取得する必要がありますテーブル「B」、「C」および「D」は検索ユーザによって選択される。

テーブルは通常の方法でリンクされています。各テーブルは、適切な外部キー制約を介して別のテーブルにリンクされています。

例: 表A(トランザクション) ID、Trxn、日付、金額

表B(トランザクションヘッダ)(表AにFK) ID、AGENT_ID(Agent_ProfileにFK)、Upd_Time、Trnx_Hdr_ID

表C( Agent_Profile) ID、Prof_ID(FK)がプロファイルに

表D(プロフィール) ID Personal_Infoに、Pers_Info_Id(FK)

表E(Personal_Info) ID、FirstNameと姓

ユーザーがを選択Trxn_Date、名、姓を選択します。 (この場合は)選択されたテーブルは、唯一トランザクションと Personal_Info であることを起こるとき

はどのようにして、サブリンクテーブルの情報を取得することができます。

+0

これらのテーブルは外部キーで接着されていますか? –

答えて

0

有用なものを失うことなく、これらのテーブルのうちのいくつかを2〜3つのテーブルに統合できるようです。表C DとEには、他の表を指す列が含まれています。

変更された場合、trxn_dateと姓名のクエリは、より簡単になります。

+0

今のところ、構造を再構成することはできません。それは長い間続いています。私が説明に加えたことはほんの少しです。実際にはテーブルにはデータがありますが、簡潔にするために列を少し追加しました。私の要件は、AとEの間のすべての中間テーブルのリストを取得することです。要件を取得しますか? –

関連する問題