CREATE TABLE `ban_detector` ( `fingerprint` varchar(512) NOT NULL, `ip` varchar(64) NOT NULL, `created_on` datetime DEFAULT CURRENT_TIMESTAMP, `ID` int AUTO_INCREMENT, PRIMARY KEY (`fingerprint`,`ip`), KEY `ID` (`ID`) ) CREATE TABLE `ban_detector_steamids` ( `steamid` varchar(64) DEFAULT NULL, `name` varchar(128) DEFAULT NULL, `ID` int NOT NULL, FOREIGN KEY (`ID`) REFERENCES ban_detector(ID) ON DELETE CASCADE ) --usefull read query select bd2.* from ban_detector bd2 inner join ( SELECT fingerprint, count(*) AS c FROM ban_detector bd GROUP BY fingerprint HAVING c > 1 ORDER BY c DESC ) as t on bd2.fingerprint = t.fingerprint