Try this (any database):
SELECT key, COUNT(*) count
FROM table
JOIN table2 ON table.fld1 = table2.fld1
GROUP BY key
HAVING count(*) = (
select max(count) from (
SELECT key, COUNT(*) count
FROM table
JOIN table2 ON table.fld1 = table2.fld1
GROUP BY key) x)
Or with databases that support constant table expressions (oracle, sqlserver, etc):
WITH cte AS (
SELECT key, COUNT(*) count
FROM table
JOIN table2 ON table.fld1 = table2.fld1
GROUP BY key)
SELECT * FROM cte
WHERE count = (SELECT MAX(count) FROM cte)
Which should be a bit more efficient.