Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Necesito ordenar antes de agrupar

Estas en el tema de Necesito ordenar antes de agrupar en el foro de Bases de Datos General en Foros del Web. Hola, mi problema es el siguiente: Hago una sentencia para obtener los resultados de unas tablas agrupandolo por 2 campos pero quiero que por ejemplo ...
  #1 (permalink)  
Antiguo 05/09/2010, 06:15
 
Fecha de Ingreso: mayo-2010
Mensajes: 65
Antigüedad: 13 años, 11 meses
Puntos: 5
Necesito ordenar antes de agrupar

Hola, mi problema es el siguiente:
Hago una sentencia para obtener los resultados de unas tablas agrupandolo por 2 campos pero quiero que por ejemplo si añades 2 iguales al agruparlo lo ordene primero por idioma.
Es decir que si hay 2 capitulos iguales que salga primero el español que el ingles.
entonces yo tengo esto:

$asdda = mysql_query("select * from bla bla bla WHERE blabla bla' GROUP BY temporada, capitulo ORDER BY blablabla", $asdasdasdasd);

y quisiera hacer algo asi:

$asdda = mysql_query("select * from bla bla bla WHERE blabla bla' ORDER BY blablabla", $asdasdasdasd GROUP BY temporada, capitulo );

OSEA ordenar antes de agrupar.
Alguien me puede ayudar? GRACIAS!
  #2 (permalink)  
Antiguo 05/09/2010, 07:14
 
Fecha de Ingreso: septiembre-2010
Mensajes: 60
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Necesito ordenar antes de agrupar

¿GROUP BY temporada, capitulo, idioma?
Si no es eso, pon tu consulta concreta. Yo personalmente no estoy viendo bien el problema.
Suerte :)
  #3 (permalink)  
Antiguo 05/09/2010, 07:17
 
Fecha de Ingreso: mayo-2010
Mensajes: 65
Antigüedad: 13 años, 11 meses
Puntos: 5
Respuesta: Necesito ordenar antes de agrupar

nono, yo lo que quiero es agrupar pero que si agrupa a la hora de mostrar me muestre el español no el inglés

si añado dos iguales ejemplo:

1x01 Hola (inglés)
1x01 Adios (español)

Agrupo por temporada y capitulo.

Me muestra 1x01 Hola (ingles).

Quiero que si hay español, me muestre el español.

1x01 Adios (español).
  #4 (permalink)  
Antiguo 05/09/2010, 11:27
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Necesito ordenar antes de agrupar

Pues ordena antes de agrupar (recuerda que español está antes que inglés en el orden alfabético)

SELECT t1.temporada, t1.capitulo, t1.otrocampo FROM (select temporada, capitulo, otrocampo from tutabla WHERE otrocampo='loquesea' ORDER BY temporada, capitulo, lengua)t1 GROUP BY t1.temporada, t1.capitulo
  #5 (permalink)  
Antiguo 05/09/2010, 11:58
 
Fecha de Ingreso: mayo-2010
Mensajes: 65
Antigüedad: 13 años, 11 meses
Puntos: 5
Respuesta: Necesito ordenar antes de agrupar

Es que he intentado de todas maneras hacer el sub select pero no me sale...
tengo varias tablas relacionadas etc..

$res = mysql_query("select * FROM capitulos, series, idiomas WHERE idiomas.ididioma=capitulos.idioma and series.idserie=capitulos.idserie and capitulos.idserie='$id' and capitulos.validado='si' GROUP BY capitulos.temporada, capitulos.capitulo", $asd);
  #6 (permalink)  
Antiguo 05/09/2010, 13:47
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Necesito ordenar antes de agrupar

SELECT t1.serie, t1.temporada, t1.capitulo, t1.idioma FROM (select capitulos.serie, capitulos.temporada, capitulos.capitulo, idiomas.idioma FROM capitulos INNER JOIN series ON series.idserie=capitulos.idserie INNER JOIN idiomas ON idiomas.ididioma=capitulos.idioma WHERE capitulos.idserie='$id' and capitulos.validado='si' ORDER BY serie, temporada, capitulo, idioma)t1 GROUP BY capitulos.serie, capitulos.temporada, capitulos.capitulo

No sé si he puesto bien los nombres de los campos. Comprueba buscando los datos de una serie y donde pones la variable $id, pon el idserie de la serie que quieras para ver si funciona.

Etiquetas: agrupar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:00.