MySQL
想象一下一家预付卡发行公司。
用户可以多次注册。
一个用户可以拥有多张卡。
CREATE TABLE users (
id int primary key,
govid varchar(255),
firstname varchar(255),
lastname varchar(255),
address varchar(255)
);
CREATE TABLE card (
id int primary key,
cardnumber varchar(16),
balance int,
user_id integer
);我想要一个用户列表
我的尝试是:
select u.govid, count(*)
from card c
join users u on u.id=c.user_id
/*join users u2 on u2.id=u.id and u2.firstname<>u.firstname and u2.lastname<>u.lastname ?*/
group by u.govid
having count(*)>10我想不出该怎么填第三条要求?
发布于 2016-08-06 07:24:21
与拥有10张以上卡片的用户一起加入原表,并检查名字和姓氏条件。
select u1.govid,u1.firstname,u1.lastname,u2.firstname,u2.lastname
from users u1
join (select * from users
where govid in (select u.govid
from users u
join card c on u.id=c.user_id
group by u.govid
having count(*)>10
)
) u2 on u1.govid = u2.govid
where u2.firstname<>u1.firstname and u2.lastname<>u1.lastnamehttps://stackoverflow.com/questions/38798945
复制相似问题