2012-06-28 171 views
1

我有以下五個表:複雜的MySQL 5個表連接

表名:           場

dba_acc:                     ACCOUNT_ID,用戶名
user_inst:                 ACCOUNT_ID,實例名,HOST_NAME
實例:               instance_key,INSTANCE_NAME
db_inst:                       DB_KEY,instance_key
DBS:                               分貝,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

我不認爲複雜的標籤在這裏適用 – Jeff

+0

「我想發展」 - 所以什麼阻止你這樣做?你有什麼嘗試過,沒有奏效?刪除了「複雜」標籤,因爲這是非常常規的。 – MetalFrog

+1

這不應該是downvoted,傢伙。 – Nathanael

回答

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

謝謝Sashi我現在就試試吧! – ashah142

+0

@ user1489064你是最受歡迎的.. –

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 

它就像接線。按名稱查找常用列並繼續加入。

+0

謝謝你們!我知道了... – ashah142