2015-10-07 178 views
0

嗨開發商/ DBA朋友,我有小問題的獲取與MySQL表的細節如下:尋求多個表的優化適當的MySQL查詢連接

我已經CID可以說cid=xxx

我想輸出(CID ,ruser_id,dtoken,akey,prase)在一個記錄中使用cid作爲鍵輸入

我應該執行哪些mysql查詢還可以優化這個獲取,

表結構如下:

tbl_mk(cid,pro_id) -> pro_id primary key of tbl_pro 

tbl_luser(cid,ruser_id) -> ruser_id primary key of tbl_ruser 

tbl_ruser(id,dtoken)->id is primary key of this tbl_ruser where its referenced in tbl_luser as ruser_id 

tbl_pro(id,akey)-> id is primary key of this tbl_pro which its referenced in tbl_mk as pro_id 

tbl_app(akey,prase) 

primary id/reference命名約定是即想如果表的名稱是 tbl_name然後ID在其他表中引用了tbl_namename_id. where id is primary key of tbl_name

我知道有很多的MySQL專家這裏,所以如何使其以較少的努力工作,FYI我基本的移動應用開發者,但有時間M上的一些東西的MySQL的Web API的工作需要:)

謝謝,我真的很感激,並欣賞是否有人能爲我解決這個問題。我做了一個查詢和獲取細節,但似乎不正確的方式,我需要更有效的方式,這就是爲什麼米張貼在這裏。

等待一些最好的答覆和預期的答案。

回答

1

只需加入表格即可。假設:cid是你輸入:

SELECT l.cid, l.ruser_id, r.dtoken, p.akey, prase 
FROM tbl_luser l 
JOIN tbl_ruser r ON l.ruser_id = r.id 
JOIN tbl_mk m ON l.cid = m.cid 
JOIN tbl_pro p ON p.id = m.prod_id 
JOIN tbl_app a ON a.akey = p.akey 
WHERE l.cid = :cid 
+0

此查詢的工作爲我的目的,我appricate並感謝您的快速答覆,但只有一個問題@Mureinik這是有可能得到只有一條記錄,而不使用查詢「限制1」通過tbl_pro&tbl_app有tbl_app(one) tbl_pro(one)關係這一事實知道這意味着akey將只有一個記錄,對於使用akey加入的pro_id只有一條記錄。它現在給出多個記錄但是完全相同。 –