数据库结构:
表A:
News(新闻列表)
ID         自动增加
Title      文本  新闻标题
Type_Id    数字 新闻所属类别
.......表B:
Type(新闻分类表)
ID         自动增加 和News表中的Type_ID一一对应
Type_Name  文本,新闻类别,比如国内新闻,国际新闻等现在我遇到的问题是,在做新闻列表的时候,想这样做
新闻ID              新闻标题                 所属类别     .......
1、                 测试                     国内新闻
2、                 测试                     国内新闻
3、                 测试                     国际新闻
4、                 测试                     其他类别
.....................................
这张页面还需要做分页功能。现在我用DataList是可以把数据读出来,但是效果是后面的所属类别只能读出在News(新闻表)里面的对应的数字,像我这样的效果,个人认识需要再进行一次对Type表的查询。select news.id,news.title,news.type_id,type.type_name From news,Type where Type.id=news.type_id
用上面的查询办法是可以实现这样的效果,但是这样的扩展性能好象不够好,以后若是改起来很麻烦,还有,若是用这样的查询办法,我若是还要加个搜索进去,那代码的可看性能就更加不好了。请问,还有其他的什么好的解决办法吗???超急。
分不够可以再开贴给分。

解决方案 »

  1.   

    select news.id,news.title,news.type_id,type.type_name INTO #TEMP_TABLE From news,Type where Type.id=news.type_id
    然后对#TEMP_TABLE处理,这样是不是简单一点呢?
      

  2.   

    用这个更好,更容易扩展
    select news.id,news.title,news.type_id,type.type_name 
    From news
    LEFT JOIN Type ON Type.id=news.type_id
      

  3.   

    恩,楼上的办法确实看上更好一些,但是,在Asp中可以这样来做:
    set rs=server.CreateObject("adodb.recordset")
    sql="select * form News"
    rs.open sql,conn,1,1
    response.write("" & Rs("title") & "")
    set rs1=server.CreateObject("adodb.recordset")
    sql1="select * form type where Id="& Rs("Type_Id") &""
    rs1.open sql1,conn,1,1
    response.write("" & Rs1("type_name") & "")
    Rs1.close
    set rs1=nothing
    Rs.close
    Set rs=nothing我现在的疑问就是在Asp.NET中为什么就不能这样了?一定需要用连接查询的办法才能实现这样的效果?
      

  4.   

    楼主要求可真高啊。我觉得要是可能,尽量不要用JOIN什么的,效率不高。
    象这样:
    select a.*,b.type_name From news a,Type b where b.id=a.type_id
    已经够简洁的了嘛。
      

  5.   

    请大家看看这个
    http://www.mikecat.net/blogview.asp?logID=1120&cateID=2
    感觉他这里提出的几个概念好象挺不错的
    呵呵,做技术的嘛,当然是要考虑用最优秀的代码实现最美妙的页面效果的拉。
      

  6.   

    还有个问题
    select a.*,b.type_name From news a,Type b where b.id=a.type_id
    这样的SQL语句,我若是还想加个查询的该怎么做?
    select a.*,b.type_name From news a,Type b where b.id=a.type_id And Key Like '"%& Request("Key") %&"' 
    是这样吗?那不是多重查询该怎么做啊???头晕了...........