首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql在同一行中选择数据

Mysql在同一行中选择数据
EN

Stack Overflow用户
提问于 2015-06-13 03:05:01
回答 1查看 59关注 0票数 1

我对这个查询真的很困惑。我想在一行中获取一个上下文的所有数据。我真的不知道该怎么做。这是桌子的样本。

代码语言:javascript
复制
data (table)                               io(table)
IDData    IDIO   ReadVal   No              IDIO   IDContext
1          io1     12       1              io1       c1     
2          io2     12.5     2              io2       c1 
3          io3     11       3              io3       c1 
4          io4     12.2     1              io4       c2  
5          io5     10       2              io5       c2  
6          io6     10.9     3              io6       c2

我想得到这个结果

代码语言:javascript
复制
IDContext    IO-1   IO-2   IO-3
   c1         12    12.5    11
   c2        12.2    10    10.9

我尝试在循环中这样做,以便在表中打印,而且它可以工作,但我希望在查询中这样做,这样它会更快。

实际上,我的查询是这样的:

代码语言:javascript
复制
SELECT IDContext, IDInput, ReadVal
FROM data
LEFT JOIN io ON io.IDIO = data.IDIO
ORDER BY IDContext, No

这有可能在一个查询中得到这个结果吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-13 03:07:30

您可以使用条件聚合来完成这一任务:

代码语言:javascript
复制
SELECT IDContext,
       MAX(CASE WHEN no = 1 THEN data.ReadVal END) as io1,
       MAX(CASE WHEN no = 2 THEN data.ReadVal END) as io2,
       MAX(CASE WHEN no = 3 THEN data.ReadVal END) as io3
FROM data LEFT JOIN
     io
     ON io.IDIO = data.IDIO
GROUP BY IDContext
ORDER BY IDContext;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30814669

复制
相关文章

相似问题

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