Ver Mensaje Individual
  #16  
Antiguo 11-06-2014
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Una pequeña nota sobre la consulta:

Dependiendo de los índices (ascendente, descendente) probablemente la consulta mejore si pones max(id). Obviamente el registro será del último id y no del primero.
Si no te importe cuál de los registros salga, puedes probar con FIRST 1 id. Esto te seleccionará uno de los registros, pero no te asegura cual de todos. Se lo supone más óptimo porque en cuanto encuentra 1 deja de buscar. En los otros casos debe buscar en todos los que se cumplan la condición (t1.referencia=t2.referencia) y luego seleccionar uno.

Código SQL [-]
/* el primer registro de los que se repiten (ordenado por id) */
select * from tabla t1 where id = (select min(id) from tabla t2  where t1.referenca=t2.referencia)

/* el último registro de los que se repiten (ordenado por id) */
select * from tabla t1 where id = (select max(id) from tabla t2  where t1.referenca=t2.referencia)

/* uno de los registros de los que se repiten */
select * from tabla t1 where id = (select first 1 id from tabla t2  where t1.referenca=t2.referencia)
Responder Con Cita