为多个表连接寻求优化的正确mysql查询

时间:2015-10-07 08:13:30

标签: mysql database

嗨开发者/ dba朋友我有一些小问题,用于获取mysql表的详细信息如下:

我有cid可以说cid=xxx

我希望使用cid作为键输入在一条记录中输出(cid,ruser_id,dtoken,akey,prase)

我应该执行哪些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然后在tbl_name的其他表中引用的id为name_id. where id is primary key of tbl_name

我知道这里有很多mysql专家,所以如何让它以更少的努力工作,我基本上是移动应用程序开发人员,但是有时间在处理一些mysql的东西需要web apis需要:)

谢谢,我真的很感激和敬佩,如果有人可以为我解决这个问题。我做了一个查询并获取详细信息,但似乎不正确的方式我需要更有效的方式,这就是为什么我在这里发布。

等待预期答案的最佳回复。

1 个答案:

答案 0 :(得分: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