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

Unir dos resultados y después ordenar según campo

Estas en el tema de Unir dos resultados y después ordenar según campo en el foro de Mysql en Foros del Web. Hola a todos, Talvez alguien me pueda ayudar y se le agradeceré mucho. Tengo estas dos consultas: Código PHP: $sql  =  "SELECT DISTINCT grupos FROM aves WHERE grupos LIKE  'A%' AND grupos <> 'A' ORDER BY grupos" ; $query  =  ...
  #1 (permalink)  
Antiguo 27/01/2011, 08:47
Avatar de MauricioCr  
Fecha de Ingreso: junio-2007
Ubicación: San Pedro, San Jose, Costa Rica, Costa Rica
Mensajes: 67
Antigüedad: 16 años, 10 meses
Puntos: 0
Información Unir dos resultados y después ordenar según campo

Hola a todos,
Talvez alguien me pueda ayudar y se le agradeceré mucho.

Tengo estas dos consultas:
Código PHP:
$sql "SELECT DISTINCT grupos FROM aves WHERE grupos LIKE  'A%' AND grupos <> 'A' ORDER BY grupos";
$query $db->query($sql);
$row1 $db->fetch_array($query); 
Código PHP:
$sql "SELECT * FROM aves WHERE grupos = 'A' ORDER BY espanol";
$query $db->query($sql);
$row2 $db->fetch_array($query); 
Como puedo juntar $row1 y row2 y ordenarlas con el campo "grupos"

Agradezco de antemano!
  #2 (permalink)  
Antiguo 27/01/2011, 09:24
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Unir dos resultados y después ordenar según campo

Hola MauricioCr:

Hay varios detalles que quisiera que me aclararas, ya que no entiendo mucho la lógica de querer unir las consultas. Para empezar, no nos dices cuál es la estructura de tu tabla AVES, esto tiene el siguiente problema: tu consulta ROW1 sólo hace un select DISCTINCT GRUPOS de tu tabla, es decir que el resultado contiene una única columna. La consulta ROW2 sin embargo hace un select *, lo que indica que regresará más de una columna (de acuerdo a la consulta tu tabla tiene por lo menos dos campos uno llamado grupo y otro llamado espanol). No entiendo entonces cómo es que quieres unir los resultados.

Ahora bien, hay un detalle también en cuanto las cláusulas WHERE. por un lado en la consulta ROW1 tienes lo siguiente:

Código:
WHERE grupos LIKE  'A%' AND grupos <> 'A'
mientras que la consulta ROW2 expresa lo siguiente:

Código:
WHERE grupos = 'A'
Si haces la unión de estas restricciones tienes en una la condición grupos <> 'A' + grupos = 'A' lo que abarcaría todo el universo. Creo que bastaría con que tu condición la pusieras simplemente como grupos LIKE 'A%'.

Nos serviría de mucho si colocas algunos datos de ejemplo de tu tabla AVES y qué es lo que estás buscando como resultado así en lugar de tratar de unir las dos consultas te ayudamos a generar una nueva consulta que te arroje los resultados que necesitas.

Saludos
Leo.
  #3 (permalink)  
Antiguo 27/01/2011, 09:49
Avatar de MauricioCr  
Fecha de Ingreso: junio-2007
Ubicación: San Pedro, San Jose, Costa Rica, Costa Rica
Mensajes: 67
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Unir dos resultados y después ordenar según campo

Hola leonardo_josue, gracias por el afan de ayudar a lo que no sabemos mucho.

Estructura:


Lo que sucede es que cada registro tiene un grupo definido, grupos, pero otros registros solo tienen una letra, ahi mismo en grupos, entonces debo seleccionar todos los grupos unicos y despues seleccionar las especies que solo contenga esa letra, por eso es que excluyo en el primer sql la letra. Todo eso debo unirlo y ordenarlo por el campo espanol.

Espero me entienda.

Gracias de nuevo.
  #4 (permalink)  
Antiguo 27/01/2011, 16:31
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Unir dos resultados y después ordenar según campo

Hola de nuevo MauricioCr, perdona mi insistencia, pero te vuelvo a hacer el comentario que hice en el post anterior:

Cita:
Nos serviría de mucho si colocas algunos datos de ejemplo de tu tabla AVES y qué es lo que estás buscando como resultado así en lugar de tratar de unir las dos consultas te ayudamos a generar una nueva consulta que te arroje los resultados que necesitas.
Según estoy entendiendo lo que estás tratando de hacer es una especie de buscador de aves, lo que no termino de entender es el criterio que quieres utilizar para filtrar la información. Según entendí tu tabla AVES tienes más o menos los siguientes datos (pongo sólo los que interesarían para la búsqueda)

Código:
grupo|descripcion
------------------------------
A|Ave 1
AB|Ave 2
HJ|Ave 3
ARH|Ave 4
A|Ave 5
CB|Ave 6
BAA|Ave 7
Si tú haces algo como esto

SELECT * FROM aves WHERE grupo like 'A%'

Esto te traerá todos los registros que comienzan con A, independientemente de si es sólo un caracter o mas, es decir te traería lo siguiente:

Código:
grupo|descripcion
------------------------------
A|Ave 1
AB|Ave 2
ARH|Ave 4
A|Ave 5
No sé si esto es lo que necesitas, si no es así podrías poner algunos datos como lo hice yo, para tratar de entender cuál es el criterio para filtrar.

Saludos
Leo

Etiquetas: dos, resultados, unir, campos
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 10:30.