1

データベースサーバーに直接接続するサーバーアプリケーションのMySQLビューを作成しています。アプリケーションのスキーマが気に入らなかったので、独自の構造を使用しました。もともと、静的構成ファイルを作成するためにデータを使用するつもりでしたが、それはもはやオプションではありません。

とにかく、このビューを作成するために、さまざまなテーブルのいくつかの行を使用します。テーブルAとビューの間には1対多の関係があり、テーブルBには1対1の関係があります。私を失望させているのは1対多です。

表Aには、次のものがあります。

+ -------------------------------- +
| id | 名前| タイムアウト| 任意|
+ -------------------------------- +
| 1 | メイン| 10 | 1 |
+ -------------------------------- +

表Bには、次のものがあります。

+ ------------------- +
| id | a_id | ルート|
+ ------------------- +
| 1 | 1 | 123 |
+ ------------------- +
| 2 | 1 | 321 |
+ ------------------- +

ビューの場合、2つのテーブルは次のように結合されます。

+ ------------------------------------- +
| 名前| アプリ| データ|
+ ------------------------------------- +
| メイン| タイムアウト| 10 |
+ ------------------------------------- +
| メイン| ダイヤラニー| 1 |
+ ------------------------------------- +
| メイン| routeto | 321 |
+ ------------------------------------- +
| メイン| routeto | 123 |
+ ------------------------------------- +

これに名前があるかどうか(またはそれが可能かどうかさえわかりません)ですが、始めるための助けは素晴らしいでしょう。

4

1 に答える 1

0

次のように、を使用しUNIONて最初のテーブルから個々の行を取得します。

SELECT name, 'timeout' as app, timeout FROM A WHERE id = 1
UNION SELECT name, 'dialany' as app, `any` FROM A WHERE id = 1

そしてUNION、他の表では:

UNION SELECT A.name, 'routeto' as app, B.data FROM A
    JOIN B ON A.id = B.a_id
    WHERE A.id = 1

そして、あなたはあなたが望むものを持っているべきです。

于 2012-09-11T19:47:41.127 に答える