En C# sería así:¿Cómo seleccionar la primera fila para cada grupo en MySQL?
table
.GroupBy(row => row.SomeColumn)
.Select(group => group
.OrderBy(row => row.AnotherColumn)
.First()
)
LINQ to SQL lo traduce al siguiente código de T-SQL:
SELECT [t3].[AnotherColumn], [t3].[SomeColumn]
FROM (
SELECT [t0].[SomeColumn]
FROM [Table] AS [t0]
GROUP BY [t0].[SomeColumn]
) AS [t1]
OUTER APPLY (
SELECT TOP (1) [t2].[AnotherColumn], [t2].[SomeColumn]
FROM [Table] AS [t2]
WHERE (([t1].[SomeColumn] IS NULL) AND ([t2].[SomeColumn] IS NULL))
OR (([t1].[SomeColumn] IS NOT NULL) AND ([t2].[SomeColumn] IS NOT NULL)
AND ([t1].[SomeColumn] = [t2].[SomeColumn]))
ORDER BY [t2].[AnotherColumn]
) AS [t3]
ORDER BY [t3].[AnotherColumn]
Pero es incompatible con MySQL.
que no se puede controlar el servidor de base de datos para ver qué consultas de C# se ejecuta (que soy una-lo que adivinar que su sintaxis anterior es LINQ) – lexu
@Iexu Sí puedo, y lo hice con MS SQL Server. Pero no tengo ningún Linq-to-MySQL, solo Linq-To-Sql –