2015-10-07 180 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只有一条记录。它现在给出多个记录但是完全相同。 –