a表:  
 id       name      banji_id               //banji_id即为b表的id  
 1         张龙          1  
 2         张龙          2  
 3         李四          1  
 3         李四          5  
 5         王五          3  
 6         赵虎          2  
 7         赵虎          1  
 8         赵虎          4
b表:  
 id          km             sj1          sj2  
 1        珠心算        2015      春季  
 2           口才         2015      春季  
 3          作文          2015      春季  
 4          数学          2015      春季  
 5          英语          2014      秋季
张龙是在2015春季学了珠心算和口才;  
 赵虎是在2015春季学了珠心算和口才和数学;  
 李四是在2014秋季学的英语,2015春学的珠心算;  
 我想做一个按纽,点击后搜索出张龙、赵虎(即在同一期学多科的学员);  
 而李四虽然是不同科目,但李四由于是不同学期,所以不在显示之列
回复讨论(解决方案)   select name from (select a.*, b.km, b.sj1, b.sj2, count(*) as cou from a join b on a.banji_id = b.id group by name, sj1, sj2) as c where cou >= 2;
不知道有没有更简单的方法。。
group by xy.name,bj.shijian_1,bj.shijian_2 having count(*)>1
group by xy.name,bj.kemu_1 having count(*) 1
select a.id, name from a, b where a.banji_id=b.id group by name,sj1,sj2 having count(*) > 1
用这个可以了,但还有两个问题:  
 1、在分页时显示不正确,  
 function get_xueyuan_count($duoke.......省略)  
 {  
 global $fdyu,$db;  
         ......省略  
         if($duoke!=0)  
 {  
 $sql_where .=  and xy.cur_banji_id=bj.banji_id group by xy.name,bj.shijian_1,bj.shijian_2 having count(*) > 1;  
 }  
         $sql = select count(distinct xy.xy_id) from .$fdyu->table('oa_xueyuan'). as xy left join   
 .$xfsql.  
 $fdyu->table('oa_banji') .  as bj on bj.banji_id=xy.cur_banji_id left join .  
 $fdyu->table('oa_banji') .  as bj_1 on bj_1.banji_id=xy.pre_banji_id   
 .$xiashu.  
 $sql_where;  
         $count = $db->getone($sql);  
         return $count;  
 }
function get_xueyuan_list($duoke.......省略)  
 {  
         global $fdyu,$db;  
         ......省略  
         if($duoke!=0)  
 {  
 $sql_where .=  and xy.cur_banji_id=bj.banji_id group by xy.name,bj.shijian_1,bj.shijian_2 having count(*) > 1;  
 }  
         $sql = select count(distinct xy.xy_id) from .$fdyu->table('oa_xueyuan'). as xy left join   
 .$xfsql.  
 $fdyu->table('oa_banji') .  as bj on bj.banji_id=xy.cur_banji_id left join .  
 $fdyu->table('oa_banji') .  as bj_1 on bj_1.banji_id=xy.pre_banji_id   
 .$xiashu.  
 $sql_where;  
         $res = $db->selectlimit($sql, $size, ($page-1) * $size);  
 $arr = array();  
         if ($res)  
         {  
 while ($row = $db->fetchrow($res))  
                {  
                       ......省略  
                }  
         }  
 }
2、我想把学多科的名单都显示,这句 and xy.cur_banji_id=bj.banji_id group by xy.name,bj.shijian_1,bj.shijian_2 having count(*) > 1应该怎么改  
 张龙  
 张龙  
 赵虎  
 赵虎  
 赵虎
   
 
   