我目前正在学习mysql。我能够创建一个名为user
的表(在下面引用)。每个用户都有一个唯一的ID。某些用户共享相同的帐号。我在编写一个查询时没有运气,该查询将显示共享相同帐号的用户的结果。我该怎么做呢?
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`account` int(11) NOT NULL,
`role` enum('default','admin','owner') NOT NULL DEFAULT 'default',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=15
答案 0 :(得分:2)
试试这个
SELECT * FROM `user`
WHERE account IN (SELECT account FROM user GROUP BY account HAVING COUNT(*)>1)
答案 1 :(得分:2)
select id, a.account from users u,
(select account from users
group by account
having count(*)>1) a
where u.account=a.account
order by u.account
答案 2 :(得分:0)
select a.id, b.id
from users as a, users as b
where a.account=b.account and a.id < b.id;
这会找到共享帐户的用户对。
这有一些缺点: