Baseei minha resposta apenas no título do seu post, pois não conheço C# e não entendi a consulta fornecida. Mas no MySQL eu sugiro que você tente subselects. Primeiro, obtenha um conjunto de chaves primárias de colunas interessantes e selecione os dados dessas linhas:
SELECT somecolumn, anothercolumn
FROM sometable
WHERE id IN (
SELECT min(id)
FROM sometable
GROUP BY somecolumn
);