首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL操作视图数据

问MySQL操作视图数据
EN

Stack Overflow用户
提问于 2020-10-31 18:18:49
回答 3查看 37关注 0票数 0

我正在阅读一个视图,它为我提供了如下数据:

代码语言:javascript
复制
msn       | global_device_id | meter_datetime        | interval| channel_id | active_energy_pos_t1     
==================================================================================================
3798000021| 980021           | 2020-07-29 16:45:00   | 15      | 1          | 72.80300
3798000021| 980021           | 2020-07-29 17:00:00   | 15      | 1          | 72.80300
3798000021| 980021           | 2020-07-29 17:15:00   | 15      | 1          | 72.80300
3798000021| 980021           | 2020-07-29 17:30:00   | 15      | 1          | 72.80300
....

每条记录的channel_id都是1。我想操纵它。我想要对上面的数据进行精确的3 copies,1st数据的1应该是channel_id,第二个应该是channel_id,第三个应该是channel_id,如下所示

代码语言:javascript
复制
msn       | global_device_id | meter_datetime        | interval| channel_id | active_energy_pos_t1     
==================================================================================================
3798000021| 980021           | 2020-07-29 16:45:00   | 15      | 1          | 72.80300
3798000021| 980021           | 2020-07-29 17:00:00   | 15      | 1          | 72.80300
3798000021| 980021           | 2020-07-29 17:15:00   | 15      | 1          | 72.80300
3798000021| 980021           | 2020-07-29 17:30:00   | 15      | 1          | 72.80300
3798000021| 980021           | 2020-07-29 16:45:00   | 15      | 2          | 72.80300
3798000021| 980021           | 2020-07-29 17:00:00   | 15      | 2          | 72.80300
3798000021| 980021           | 2020-07-29 17:15:00   | 15      | 2          | 72.80300
3798000021| 980021           | 2020-07-29 17:30:00   | 15      | 2          | 72.80300
3798000021| 980021           | 2020-07-29 16:45:00   | 15      | 3          | 72.80300
3798000021| 980021           | 2020-07-29 17:00:00   | 15      | 3          | 72.80300
3798000021| 980021           | 2020-07-29 17:15:00   | 15      | 3          | 72.80300
3798000021| 980021           | 2020-07-29 17:30:00   | 15      | 3          | 72.80300

....

视图名称为load_profile_data。我该怎么做呢?

EN

回答 3

Stack Overflow用户

发布于 2020-10-31 18:42:46

您可以将视图与固定值列表进行交叉联接:

代码语言:javascript
复制
select l.msn, l.global_device_id, l.meter_datetime, l.interval, c.channel_id, l.active_energy_pos_t1
from load_profile_data l
cross join (select 1 channel_id union all select 2 union all select 3) c
票数 2
EN

Stack Overflow用户

发布于 2020-10-31 18:21:46

一种方法是使用联合:

代码语言:javascript
复制
SELECT msn, global_device_id, meter_datetime, `interval`, channel_id, active_energy_pos_t1
FROM load_profile_data
UNION ALL
SELECT msn, global_device_id, meter_datetime, `interval`, 2, active_energy_pos_t1
FROM load_profile_data
UNION ALL
SELECT msn, global_device_id, meter_datetime, `interval`, 3, active_energy_pos_t1
FROM load_profile_data;

附注:INTERVAL是MySQL中的保留关键字。我在上面的查询中用反引号进行了转义,但通常您应该避免使用保留关键字来命名数据库对象。

票数 0
EN

Stack Overflow用户

发布于 2020-10-31 18:22:45

尝试联合:

代码语言:javascript
复制
select msn , global_device_id , meter_datetime . interval, channel_id ,active_energy_pos_t1 from load_profile_data

union

select msn , global_device_id , meter_datetime . interval, channel_id +1 ,active_energy_pos_t1 from load_profile_data

union

select msn , global_device_id , meter_datetime . interval, channel_id+2 ,active_energy_pos_t1 from load_profile_data
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64620646

复制
相关文章

相似问题

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