Rumah > pembangunan bahagian belakang > tutorial php > 怎么样查找同一姓名的数据?

怎么样查找同一姓名的数据?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-23 13:38:08
asal
1311 orang telah melayarinya

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;
Salin selepas log masuk


不知道有没有更简单的方法。。


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
Salin selepas log masuk
Salin selepas log masuk

select a.id, name from a, b where a.banji_id=b.id group by name,sj1,sj2 having count(*) > 1
Salin selepas log masuk
Salin selepas log masuk



用这个可以了,但还有两个问题:
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应该怎么改
张龙
张龙
赵虎
赵虎
赵虎
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan