现在需要从一个Mysql表中查询数据。
表test
表有Time  SIP  SP  DIP DP  Flag字段。
Flag=0或1。
其中每两条信息,SIP  SP  DIP DP 完全相同,只是Flag一个为0,一个为1。
也可能只有一条信息,即只有Flag=1的信息。现在我想查出只含有Flag=1的数据。即相同的SIP  SP  DIP DP 不含有Flag=0 的数据。该如何写查询语句。请教 高手。

解决方案 »

  1.   

    select * from test where Flag = 1;
    根据你的描述,发现 查询条件是flag = 1,是不这样的啊?
      

  2.   


    贴建表及插入记录的SQL,及要求结果出来看看select * from tt a where not exists(select 1 from tt where a.SIP=SIP and
    a.SP=sp and a.DIP=dip and a.DP=DP and flag=0)
      

  3.   

    select * from tt a where not exists(select 1 from tt where a.SIP=SIP and
    a.SP=sp and a.DIP=dip and a.DP=DP and flag=0)  这样我试了,可是效率好慢啊。一直在等。
    不知道等多久会有结果。 表的记录也不多也就几万条吧。
    就没有更好的办法了么?
      

  4.   

    没有办法,你在SIP SP DIP DP Flag上建立复合索引