为什么我的sql语法不能用于创建视图?

时间:2014-10-14 11:36:58

标签: mysql sql

当我尝试创建视图时,有人能告诉我为什么SQL会不断回复错误吗?

create view VAR_PEAKING as 
     select MEASURE_1 as PKN_1, MEASURE_2 as PKN_2, MEASURE_3 as PKN_3
     from LIVE_MEAS
      WHERE VARIABLE = 'PKN',
      select MEASURE_1 as PKS_1, MEASURE_2 as PKS_2, MEASURE_3 as PKS_3
     from LIVE_MEAS
      WHERE VARIABLE = 'PKS'

1 个答案:

答案 0 :(得分:2)

假设两个SELECT语句都返回行,这是怎么回事? (UNION,而不是逗号)

create view VAR_PEAKING as 
select 
    MEASURE_1 as PKN_1,
    MEASURE_2 as PKN_2,
    MEASURE_3 as PKN_3,
    NULL AS pks_1,
    NULL AS pks_2,
    NULL AS pks_3
from LIVE_MEAS
WHERE VARIABLE = 'PKN'
UNION
select
    NULL AS pkn_1,
    NULL AS pkn_2,
    NULL AS pkn_3,
    MEASURE_1 as PKS_1,
    MEASURE_2 as PKS_2,
    MEASURE_3 as PKS_3
from LIVE_MEAS
WHERE VARIABLE = 'PKS'

您是否有机会发布样本数据,数据结构和所需结果?

这可能是您正在寻找的:

create view VAR_PEAKING as 
SELECT
    a.MEASURE_1 as PKN_1,
    a.MEASURE_2 as PKN_2,
    a.MEASURE_3 as PKN_3, 
    b.MEASURE_1 as PKS_1, 
    b.MEASURE_2 as PKS_2, 
    b.MEASURE_3 as PKS_3
from LIVE_MEAS a JOIN LIVE_MEAS b ON a.[col]=b.[col]
WHERE a.VARIABLE = 'PKN' AND b.VARIABLE = 'PKS'