Ver Mensaje Individual
  #5 (permalink)  
Antiguo 08/10/2005, 12:43
Galadriel
 
Fecha de Ingreso: noviembre-2004
Mensajes: 10
Antigüedad: 20 años
Puntos: 0
el group by me produce el mismo resultado que el distinct

TABLA1

id, nombre, codigo

1 - aa - 10
2 - bb - 12
3 - cc - 12
4 - dd - 13
5 - ee - 14
----------------------
TABLA2

codigo color
9 - negro
10 - rojo
11 - naranja
12 - amarillo
13 - verde
--------------------------
SELECT tabla1.codigo, tabla1.id, tabla2.color FROM tabla1, tabla2 WHERE tabla1.codigo=tabla2.codigo AND tabla2.color<>'negro'

este sería el resultado sin DISTINCT ni GROUP BY

codigo id color
10 - 1 - rojo
12 - 2 - naranja
12 - 3 - naranja
13 - 4 - verde

Yo lo que quiero es que me devuelva solo un registro por codigo, es decir que el de codigo 12 no salga dos veces. La fila resultado no es igual (ya que el id es distinto aunque los otros campos lo sean iguales) por eso me choca tanto. Esta es mi consulta (he provado con los parentesis en (tabla1.codigo) y el GROUP BY tabla1.codigo y el resultado es el mismo)

SELECT DISTINCT tabla1.codigo, tabla1.id, tabla2.color FROM tabla1, tabla2 WHERE tabla1.codigo=tabla2.codigo AND tabla2.color<>'negro'

y el resultado es el siguiente:

10 - 1 - rojo
13 - 4 - verde