这是数据库的内容,t_id和t_little_id是联合主键,用while嵌套while时请问外层while如何只读取一次t_id
现在我的情况是外层while数据库有几个t_id他就循环几次,如何把相同的t_id只读取一次?

解决方案 »

  1.   

    你后面的TLETTLEID有几次,还是得读取这么多次吧,晕没明白
    SELECT * FROM TB T WHERE T_LITTLE_ID=(SELECT MIN(T_LITTLE_ID) FROM TB WHERE T_ID=T.T_ID)去重?
      

  2.   

    数据库设计的不好,把上面的那个表分成两个就解决了,其实我的意思是我想输出下面的那个样子
    文学
    ->小说
    ->散文
    ......
    经济管理
    ->管理学
    ......
    这种样子的,但是用while嵌套while外层while输出大类名称,如文学,经济管理时,会把数据库中的所有内容都输出一次,就等于了文学输出5次,他下面的小类也输出五次,然后我的意思是如果按照上面这个数据库设计,如何做到相同t_id的内容之输出1次,后来想想自己解决了,数据库分成两个就可以了
      

  3.   

    SELECT * FROM TB T WHERE NOT EXISTS(SELECT 1 FROM TB WHERE T_ID=T.T_ID AND T_LITTLE_ID<T.T_LITTLE_ID)?
      

  4.   

    可以只做一层循环,只循环t_little_id,把T_ID做条件。没看懂你的问题
      

  5.   

    SELECT * FROM TB T WHERE T_LITTLE_ID=(SELECT MIN(T_LITTLE_ID) FROM TB WHERE T_ID=T.T_ID)
    赞同77老大的,
    楼主用两个while,会影响速度的
      

  6.   


    DECLARE @t_id INT
    SELECT DISTINCT t_id INTO #book FROM book
    WHILE EXISTS(SELECT 1 FROM #book)
    BEGIN
    SELECT TOP 1 @t_id=t_id FROM #book ORDER BY t_id 
        下一层循环
         DELETE FROM #book WHERE t_id=@t_id 
    END
    drop table #book