时间:2021-07-01 10:21:17 帮助过:36人阅读
drop table A;name
create table A (
id int,
name varchar(10),
kemu1 varchar(10)
) charset=gbk;
set names gbk;
insert into A values
(1, '张龙', '珠心算'),
(2, '张龙', '口才'),
(3, '赵虎', '珠心算'),
(4, '赵虎', '作文'),
(5, '王朝', '数学'),
(6, '王朝', '数学'),
(7, '马汉', '绘画');
select DISTINCT A.name
from A,
(select name, group_concat(kemu1 order by kemu1) as klist from A group by name HAVING count(DISTINCT kemu1)>1) B
where find_in_set(A.kemu1, B.klist)
SELECT name FROM t_xuanke
WHERE id in( SELECT id FROM t_xuanke GROUP BY name,kemu1 HAVING count(*)<=1 )
GROUP BY `name`
HAVING COUNT(*)>1