select * from news_column n where n.channel_ID=? and n.current_level=0 order by n.column_order
不懂得其中的n是什么意思,这样做有什么好处。

解决方案 »

  1.   

    n是为news_column表取的一个别名,后面的n.channel_ID其实也可以写成news_column.channel_ID,取了别名以后方便一点拉
      

  2.   

    select * from news_column n where n.channel_ID=? and n.current_level=0 order by n.column_ordern 是 news_column 表的别名, 这样写 比较好看和醒目
      

  3.   

    对,是个别名,它在表名很长的时候有特别功效: 能提高sql的效率
      

  4.   

    select * from news_column n where n.channel_ID=? and n.current_level=0 order by n.column_order首先你得知道的是news_column n这里,这里其实是对表news_column取个别名n,这样特别是对那些表明比较长的有效.
    下面得了解的是可以通过别名.字段来取对应的字段,就跟.运算符样.了解了上面的后,你再来看这条SQL就应该比较简单的了.先把它支解开来:
    select * from news_column n order by n.column_order;这个是指通过column_order倒序查
    然后有控制条件where,where n.channel_ID=? and n.current_level=0,并且这里是双重控制的,通过and来连接的.
    首先是
    channel_ID=?,这里的问号应该就是你传过来的一个参数值,current_level=0也是一个控制条件.