【问题标题】:Sql to get column values in rowsSql 获取行中的列值
【发布时间】:2014-04-16 02:21:36
【问题描述】:

我有一张表格,列有日期、系统、硬度、电导率、tankno。

日期系统 cond hard tankno 2014-01-04 HT 55.67 2.68 1 2014-01-05 HT 64.67 3.1 2 2014-01-10 HT 54.77 2.44 1 2014-01-10 HT 66.3 3.47 2 2014-01-18 HT 55.63 2.38 1 2014-01-18 HT 65.9 1.44 2 2014-01-24 HT 53.1 1.76 2 2014-01-28 HT 64.53 2.1 1

我想要这样的报告

日期系统 Tank 1 cond Tank1 Hard Tank 2 cond Tank 2hard 2014-01-04 HT 55.67 2.68 NULL NULL 2014-01-05 HT NULL NULL 64.67 3.1 2014-01-10 HT 54.77 2.44 66.3 3.47 2014-01-18 HT 55.63 2.38 65.9 1.44 2014-01-24 HT NULL NULL 53.1 1.76 2014-01-28 HT 64.53 2.1 NULL NULL

我正在使用这个 sql:

select t1.date, t1.cond as tk1cond, t1.hard as tk1hard,
       t2.cond as tk2cond, t2.hard as tk2hard   
from systemvalue t1 left join systemavalue t2 
     on t1.date=t2.date 
     and t2.tankno='2' 
     and  t2.system='HT' 
     and month(t2.date)='01' 
     and year(t2.date)='2014' 
where t1.tankno='1' and t1.system='HT'
      and month(t1.date)='01' 
      and year(t1.date)='2014'

但是这个返回的数据与 tankno 1 值可用的日期有关,如下所示:

日期系统 Tank 1 cond Tank1 Hard Tank 2 cond Tank 2hard 2014-01-04 HT 55.67 2.68 NULL NULL 2014-01-10 HT 54.77 2.44 66.3 3.47 2014-01-18 HT 55.63 2.38 65.9 1.44 2014-01-28 HT 64.53 2.1 NULL NULL

如何修改sql以获取所有日期的数据

我想要日期列中的所有日期并将其连接到所有 tank 1 vlaues 和 tank 2 值

【问题讨论】:

    标签: mysql select left-join


    【解决方案1】:

    左连接仅适用于您在左侧的所有值,因此如果您在左侧缺少值,您将不会显示任何结果。

    您需要使用 OUTER 连接从两个岛获取值

    What is the difference between "INNER JOIN" and "OUTER JOIN"?

    【讨论】:

    • 外部连接不起作用
    猜你喜欢
    • 1970-01-01
    • 2011-01-07
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    相关资源
    最近更新 更多