我有两个表,要从里面提取出内容并显示。
方法1:会出现错误:string sqlstr = "select vote.vid, vote.vtitle,vote.vendtime,sum(choose.cpiaoshu) as zongshu,choose.vid  from toupiao_vote vote,toupiao_choose choose where vote.vid=choose.vid";方法2:没问题string sqlstr = "select vote.vid, vote.vtitle,vote.vendtime,sum(choose.cpiaoshu) as zongshu,choose.vid  from toupiao_vote vote,toupiao_choose choose where vote.vid=choose.vid";我想问这两种语句有什么区别吗?什么时候能用方法1,什么时候必须用方法2呢? 

解决方案 »

  1.   

    string sqlstr = "select vote.vid, vote.vtitle,vote.vendtime,sum(choose.cpiaoshu) as zongshu,choose.vid from toupiao_vote vote,toupiao_choose choose where vote.vid=choose.vid";
    ==============
    string sqlstr = "select vote.vid, vote.vtitle,vote.vendtime,sum(choose.cpiaoshu) as zongshu,choose.vid from toupiao_vote vote,toupiao_choose choose where vote.vid=choose.vid";不知同样的查询语句
    会报什么错误?
      

  2.   

    我有两个表,要从里面提取出内容并显示。
    方法1:会出现错误:string sqlstr = "select vote.vid, vote.vtitle,vote.vendtime,sum(choose.cpiaoshu) as zongshu,choose.vid from toupiao_vote vote,toupiao_choose choose where vote.vid=choose.vid";方法2:没问题string sqlstr = "select vote.vid, vote.vtitle,vote.vendtime,sum(choose.cpiaoshu) as zongshu,choose.vid  from toupiao_vote vote left join toupiao_choose choose on vote.vid=choose.vid group by vote.vid ,vote.vtitle,vote.vendtime,choose.vid ";
    我想问这两种语句有什么区别吗?什么时候能用方法1,什么时候必须用方法2呢? 
      

  3.   

    很简单的原因,第一个语句用了sum但是没有group by
      

  4.   

    方法一中加上group by 应该就正确了,方法一是找出2个表中vid都有数据,方法2是左链接,返回包括左表中的所有记录和右表中联结字段相等的记录
      

  5.   

    string sqlstr = "select vote.vid, vote.vtitle,vote.vendtime,sum(choose.cpiaoshu) as zongshu,choose.vid from toupiao_vote vote,toupiao_choose choose where vote.vid=choose.vid";
    string sqlstr = "select vote.vid, vote.vtitle,vote.vendtime,sum(choose.cpiaoshu) as zongshu,choose.vid from toupiao_vote vote left join toupiao_choose choose on vote.vid=choose.vid group by vote.vid ,vote.vtitle,vote.vendtime,choose.vid "
    用聚合函数要分组吗?