需要有sql查询,返回除了只有零的数据之外的所有数据

时间:2017-12-11 08:38:48

标签: mysql sql

我有以下两个表格:

data table

hosts table

我需要从以下条件获取数据表中的所有行: - 我不希望行中一个id的所有值都是0 - 我希望代替ip地址从主机表中检索到的相应主机名

我尝试了以下查询:

select time, hostname , id , value from data , hosts where hosts.ip_address = data.host group by time,id having avg(value) <> 0;

但这不是我想要的。 预期的结果是: enter image description here

2 个答案:

答案 0 :(得分:2)

你试过这个吗?

select d.time, h.hostname , d.id , d.value from data d join hosts h where
h.ip_address = d.host group by d.time,d.id having avg(value) <> 0;

答案 1 :(得分:1)

我希望这能帮到你,我用你的原始数据进行测试

select [time] 
   ,hostname
   ,id
   ,value
  from @data as d
 left join @host h on d.host=h.ip_address
 where id not in (select id from @data where value=0  group by id having 
 count(value)>1)