比如用条件id1=1或id1=20可以获得以上的查询结果?

解决方案 »

  1.   

    语句比较啰嗦,看看行不行.改id1的起点得改三个地方,就是id1>=20部分.
    SELECT 
      a.*
    FROM 
      `test` AS a, `test` AS b
    WHERE 
      ( (a.id2=b.id1 OR a.id3=b.id1) AND 
        a.id1<( SELECT min(id1) FROM test WHERE id1>=20 AND id2 =0 AND id3=0 ) 
      AND a.id1>=20 ) OR 
      ( a.id1=(SELECT min(id1) FROM test WHERE id1>=20 AND id2 =0 AND id3=0) )
    GROUP BY
     id1
    ORDER BY 
     id1 
      

  2.   

    楼上的试过结果不正确1、显示的数据正确的显示一部分,还缺少一部分,id2还有关联的后面一部分数据没显示。2、在后面的数据中,有些不关联的id1>20的也显示出来。
      

  3.   

    我们在这里讨论的很热烈,大家都来吧http://www.itpub.net/thread-920575-1-1.html