如何避免选择所有行显示相同值的列(SQL查询)

时间:2014-08-29 18:12:59

标签: php mysql sql mysqli

所以,让我说我有一个名为xjet的数据库和一个名为samples的表,其中我有3个样本的列:Id,频率和温度。它看起来像这样:

Id = 1,频率= 10000,温度= 50

Id = 2,频率= 10000,温度= 30

Id = 3,频率= 10000,温度= 50

我希望没有列显示其值始终相同的列,因此在这种情况下我希望查询显示:

Id = 1,温度= 50

Id = 2,温度= 30

Id = 3,温度= 50

当然假设我不知道未来温度和频率的值。我该怎么做这样的查询? 我使用MySqli和PHP是否相关

2 个答案:

答案 0 :(得分:0)

我没有坐在LAMP设置中,但是你可以这样写这样的东西。 (使用ms sql2008)它非常类似于mysql命令。是什么让你的查询有点模糊,你打算通过频率吗?你没有显示频率的原因是什么/某人会知道频率值的分组?

创建测试表并加载值:

create table #testTable
(
  id int identity(1,1),
  Frequency int default null,
  Temperature decimal default null
)

INSERT into #testTable (Frequency, Temperature)
    VALUES
      (10000, 50),
      (10000, 30),
      (10000, 50)
      ;

declare @someValue int = 10000;

select
  tt.id,
  tt.Temperature
from
  #testTable tt
where
  tt.Frequency = @someValue

上面的代码只适用于一个值。

现在你说你不知道频率,下面的代码会为你提供结果,因为你没有提供频率。以下代码的问题是您可以通过输出查看行的分组方式。 (下面的代码只使用上面的表格。)

select 
  z.id,
  z.Temperature
from
  (
    select distinct frequency from #testTable tt group by tt.Frequency
  ) as t
inner join #testTable z on t.Frequency = z.Frequency;

答案 1 :(得分:0)

我最终通过使用PHP来解决它...谢谢大家的回复