我有以下五个表:
表名:字段
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'相关的'Joe',instance_name和host_name的account_id,以及与每个instance_name相关的db。
instance_name和host_name之间的关系是多对多的。
这太复杂了。我卡住了!任何帮助表示赞赏。
答案 0 :(得分: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)
答案 1 :(得分: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
就像接线一样。按名称查找常用列并继续加入。