还有 join 子句怎么用? 各种 join 的区别?

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/3048/3048375.xml?temp=.2029993
    上次的问题网页地址,不过新问题是
    返回的查询结果不是要商品表的所有字段,而是以下8个字段的内容
    dc(大类编号),dn(大类名称),mc(中类编号),mn(中类名称),sc(小类编号),sn(小类名称),cc(商品编号),cn(商品名称)
    怎样修改刚才的语句?
    为什么在刚才的语句上加上条件 c.dc=d.dc and c.sc=s.sc and c.mc=m.mc 返回的结果不对?(大类=d 中类=m 小类=s 商品=c)
      

  2.   

    要这8各字段就必须连接了declare @where varchar(1000)
    set @where =''
    if @cc<>'' set @where=@where + ' and a.cc like ''%'+@cc+'%'''
    if @cn<>'' set @where=@where + ' and a.cn like ''%'+@cn+'%'''
    if @dc<>'' set @where=@where + ' and a.dc like ''%'+@dc+'%'''
    if @mc<>'' set @where=@where + ' and a.mc like ''%'+@mc+'%'''
    if @sc<>'' set @where=@where + ' and a.mc like ''%'+@sc+'%'''if @dn<>'' set @where=@where + ' and b.dn like ''%'+@dn+'%'''
    if @mn<>'' set @where=@where + ' and c.mn like ''%'+@mn+'%'''
    if @sn<>'' set @where=@where + ' and c.sn like ''%'+@sn+'%'''exec ('select a.dc,b.dn,a.mc,c.mn,a.sc,d.sn,a.cc,a.cn from 商品 a,大类 b,中类 c,小类 d where b.dc=a.dc and c.mc=a.mc and d.sc=a.sc '+@where)
      

  3.   

    对了,数据库表会出现编号相等的情况,比如小分类表有这样的记录
    id dc mc sc cc
    1   1  1  1  1
    2   1  1  2  1
    3   1  2  1  2这样的情况怎么办?
    zicxc(冒牌邹建 V0.1) 你的语句好像没有考虑这些现象
      

  4.   

    SELECT c.cc, c.cn, c.dc, d.dn, c.mc, m.mn, c.sc, s.sn 
    FROM  商品 c, 大類 d, 中類 m, 小類 s  
    WHERE (用户输入条件)AND s.sc=c.sc AND s.mc=c.mc AND s.dc=c.dc AND m.mc=c.mc AND  m.dc=c.dc AND d.dc=c.dc
    这样对不对?
    我的简单测试结果是正确的,不知道这样写性能怎么样?