有一张表user
id name userId
1    a         null
2    b         1
3    c         1
4    d         null
5    e        4
6    f         null
现在我要得到的数据是
id name userId
3     c        1
5     e        4
6     f         null
该怎么做阿
是页面判断 还是后台判断 还是用存储过程(我用的是mysql)

解决方案 »

  1.   

    取数据有2个条件
    1.取出userId为空的数据
    2.取出id为1的数据并且该id=userid的数据
    并且取出的数据是最后一条就是降序...
      

  2.   

    select * from user group by userId order by id desc
      

  3.   

    这两个条件不是矛盾么?猜的
    select max(id), name, userId from table t group by userId
      

  4.   


    select * from user where userId is null or id = userId order by id desc
    可。5 e 4是什么规矩出来的?
      

  5.   

    你们可以把
    id name userId
    1 a null
    2 b 1
    3 c 1
    4 d null
    5 e 4
    6 f null
    里面的2,3看成是1的子数据....
      

  6.   


    树查询啊。。
    根据userId为父节点,用id作为子节点的树查询且userId为null的结果——是这意思吧?然后你这里是要多少级的级联,你要明确好
    oracle会写,mysql不会
      

  7.   

    select * from user a,user b
    where a.userId is null or a.id=1 and a.id=b.userId order by a.id desc其实我也没太看明白楼主的意思 。。