1

次の5つのテーブルがあります。

テーブル名: フィールド

dba_acc:           account_id、ユーザー名
user_inst:         account_id、instance_name、host_name
インスタンス:        instance_key、instance_name
db_inst:            db_key、instance_key
dbs:                  db、db_key

すべてのテーブルは相互に接続されています。

特定のユーザーの account_id、username、instance_name、host_name、および db を表示するクエリを開発したいと考えています。

たとえば、username = 'Joe' を選択すると、'Joe' の account_id、'Joe' に関連する instance_name と host_name、および各 instance_name に関連する db が表示されます。

instance_name と host_name の関係は多対多です。

とても複雑です。ハマった!どんな助けでも大歓迎です。

4

2 に答える 2

1

これを試して ::

Select dba_acc.account_id, dba_acc.username, user_inst.instance_name ,
user_inst.host_name, instances.instance_key, dbs.db
from 
dba_acc
inner join   user_inston on (dba_acc.account_id =user_inston.account_id)
inner join instances on (instances.instance_name = user_inst.instance_name)
inner join db_inst on (db_inst.instance_key = instances.instance_key)
inner join dbs on (dbs.db_key = db_inst.db_key)
于 2012-06-28T16:16:26.050 に答える
1
select * from
dba_acc a
join user_inst u on a.account_id u.account_id
join instances i on u.instance_name = i.instance_name
join db_inst db on i.instanec_key = db.instance_key
join dbs on db.db_key = dbs.db_key

配線と同じです。共通の列を名前で探し、結合を続けます。

于 2012-06-28T16:17:19.093 に答える