首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL多到多3个表查询

MYSQL多到多3个表查询
EN

Stack Overflow用户
提问于 2012-08-22 12:29:01
回答 4查看 1.2K关注 0票数 3

编辑。我错过了我遇到的一个主要问题。我想显示所有唯一的'device_MAC‘行。因此,我希望这个查询输出3行(按照原来的查询)。我遇到的问题是通过data = rn_shortdt_short表连接到remote_node表,其中data表中的dt_short的最大时间戳。

我在3个表上运行一个查询时遇到了问题(2个表有多到多个关系)。

我想做的是:

  1. 使用最大时间戳从remotenodes表中获取每个不同的remotenodes(在本例中,这将得到3行具有3个不同短地址的rn_short)
  2. devicenames上加入device_IEEE表
  3. 从具有最大时间戳的dt_short表中获取每个不同的data
  4. 从上面的查询中加入dt_shortrn_short

现在我遇到的问题是,我可以单独对上面的内容进行查询,我甚至将前面的3条数据合并到一个查询中,但我似乎无法正确地加入最后一点数据来获得我想要的结果。

我一直在绕圈子试图解决这个问题。这里有一个指向SQL的链接,它包含所有测试数据和查询,只要我得到它,它就能为第一行做我想做的事情,但是在第一行为NULL之后从表' data‘执行我想要的操作:

请参阅此SQL小提琴。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-23 07:22:58

谢谢大家的回答。我用视图设法解决了这个问题。这不是最有效的方法,但我认为它目前还可以。以下是链接:

http://sqlfiddle.com/#!2/4076e/8

票数 0
EN

Stack Overflow用户

发布于 2012-08-22 15:00:34

在浏览了您的需求和数据之后,您似乎只需要更改您的查询,以便在data表中包含一个data,而不是LEFT JOIN

请参阅与Demo

代码语言:javascript
复制
select rn.*, dn.*, d.*
from remotenodes rn
inner join devicenames dn
  on rn.rn_IEEE = dn.device_IEEE
  and rn.rn_timestamp = (SELECT MAX(rn_timestamp) FROM remotenodes 
                              WHERE rn.rn_IEEE = rn_IEEE 
                              GROUP BY rn_IEEE)
inner join data d
  on rn.rn_short = d.dt_short
  AND d.dt_timestamp = (SELECT MAX(d2.dt_timestamp) AS ts
                        FROM data d2 
                        WHERE d.dt_short = d2.dt_short
                        GROUP BY d2.dt_short)
票数 2
EN

Stack Overflow用户

发布于 2012-08-22 12:53:58

尝试这个查询,为我返回一行:

代码语言:javascript
复制
SELECT rn_short, rn_IEEE, device_name
FROM 
(SELECT DISTINCTROW dt_short FROM (SELECT * FROM `data` ORDER BY `dt_timestamp` DESC) as data ) as a
JOIN 
(SELECT rn_IEEE, rn_short, device_name FROM devicenames dn JOIN (SELECT DISTINCTROW rn_IEEE, rn_short FROM (SELECT * FROM `remotenodes` ORDER BY `rn_timestamp` DESC) as remotenodes GROUP BY rn_IEEE) as rn ON dn.device_IEEE = rn.rn_IEEE) as b
ON a.dt_short = b.rn_short
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12073177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档