UTNianos

Versión completa: Consulta mysql
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2
Buenas tardes, necesito ayuda con esto, la verdad que estoy quemado, ya me recontra pudri de intentar.

tengo 4 tablas
eventos(eventoid)
grupos(grupoid,nombre)
grupoequipos(grupoequiposid,grupoid,teamid)
team(nombre,pais)

Lo que necesito es poder lograr

NOMBRE GRUPO
equipo
equipo
NOMBRE GRUPO 2
equipo
equipo

Hice esto:


SELECT gru.nombre AS gnombre, te.nombre AS tnombre, te.pais AS tpais, te.teamid AS tid
FROM (((eventos AS eve INNER JOIN grupos AS gru ON eve.eventid = gru.eventoid)
INNER JOIN grupoequipo AS grue ON gru.grupoid = grue.grupoid)
INNER JOIN teams AS te ON grue.teamid = te.teamid



pero me quda
GRUPO A | equipo1
GRUPO A | equipo2
GRUPO B | equipo3

y bueno, esta la posibilidad de hacerlo con un for dentro de otro for, pero tendria que hacer muchas consultas y es para nada optimo
si alguien puede tirarme una ayudita =D

Saludos
Vos querés que te retorne dos rows, de distinto tipo?
No entendi nada
O si, entendi lo que dijo imakuni
No se puede... espero.
Pero lo que vos queres hacer lo tenes que hacer desde php, no desde sql

osea, el select te va a traer 2 campos como vos decis, y aunque los agrupes, te va a discriminar por cada GRupo, los equipos que tenes.

Si vos corres la consulta, salvo que hagas multiples consultas, una por cada grupo (osea, varios selects), te los va a traer agrupados
la otra es que hagas un select, traigas todo, y modifiques la forma de verlo visualmente con php, pero ahi corre por tu cuenta, 0 php yo jajaja
(04-08-2011 17:57)Imakuni escribió: [ -> ]Vos querés que te retorne dos rows, de distinto tipo?

Yo imaginé lo mismo que vos, pero para hacer eso yo haría dos consultas..
En este momento no me sale, pero sería alto lío juntar todo como decís, hmm.
claro, si hago dos consultas me quedan dos array, y como los relaciono?
Desde sql sin repetir el Grupo no vas a poder
porque te va a tirar un registro por cada relacion Grupo - Equipo
Si un grupo tiene mas de un equipo, ahi lo vas a tener repetido el nombre del Grupo al presentar repetido

Sino lo que podes hacer, aunque no es optimo, y es mucho mas quilombo, es un cursor:
vas recorriendo la tabla de grupos , y por cada Grupo, que te traiga el el join con el equipo, devolviendo solo el campo "equipo".
De esa manera, en la variable cursor vas a tener el nombre del grupo, y en cada "vuelta" traes todos los equipos de ese grupo
Me parece poco optimo igual
te insisto, no te conviene traer todo con la consulta que usas ahora, y desde php y otras tecnologias que uses (?) filtrar para que no te repita el nombre ?
por eso ahora tambien tengo estas:
obtener nombre grupo


SELECT gru.nombre,gru.grupoid

FROM (eventos AS eve INNER JOIN grupos AS gru ON eve.eventid = gru.eventoid)
WHERE gru.eventoid = $eventoid



obtener equipos


SELECT te.nombre AS tnombre, te.pais AS tpais, grue.grupoid

FROM (teams AS te INNER JOIN grupoequipo AS grue ON te.teamid = grue.teamid)




y me devuelve algo


Array
(
[grupos] => Array
(
[0] => stdClass Object
(
[nombre] => Grupo A
[grupoid] => 1
)

[1] => stdClass Object
(
[nombre] => Grupo B
[grupoid] => 2
)

)

[equipos] => Array
(
[0] => stdClass Object
(
[tnombre] => Wild Ineters
[tpais] => Argentina
[grupoid] => 1
)

[1] => stdClass Object
(
[tnombre] => TaxiBoys
[tpais] => Argentina
[grupoid] => 1
)

[2] => stdClass Object
(
[tnombre] => HIUX
[tpais] => Argentina
[grupoid] => 1
)

[3] => stdClass Object
(
[tnombre] => Frequency.KFA
[tpais] => Argentina
[grupoid] => 1
)

[4] => stdClass Object
(
[tnombre] => ONLINE
[tpais] => Argentina
[grupoid] => 2
)

[5] => stdClass Object
(
[tnombre] => Rov
[tpais] => Argentina
[grupoid] => 2
)

)

)



Ok, ahora deberias relacionarlas desde php y mostrar por pantalla sin repeticion.. de php 0 asique ni idea xD
Podes usar la consulta que posteaste en el primer post y hacer un corte de control a partir de la primer columna.
(04-08-2011 20:47)brunodiaz escribió: [ -> ]Podes usar la consulta que posteaste en el primer post y hacer un corte de control a partir de la primer columna.

eehhmmroll
Tenes esto

GRUPO A | equipo1
GRUPO A | equipo2
GRUPO B | equipo3

Lo metes dentro de un ciclo y vas haciendo $datos[$grupo][]=$equipo;
Despues con un foreach $grupo=>$equipos ya tenes todo armado
(04-08-2011 20:55)brunodiaz escribió: [ -> ]Tenes esto

GRUPO A | equipo1
GRUPO A | equipo2
GRUPO B | equipo3

Lo metes dentro de un ciclo y vas haciendo $datos[$grupo][]=$equipo;
Despues con un foreach $grupo=>$equipos ya tenes todo armado

posta wall soy muy boludo jaja



$prueba = $this->eventos_model->obtener_grupos2($eventoid);
foreach ($prueba as $fila){
$data['grupos'][$fila->gnombre][]=$fila;
}



Me devuelve


Array
(
[grupos] => Array
(
[Grupo A] => Array
(
[0] => stdClass Object
(
[gnombre] => Grupo A
[tnombre] => Wild Ineters
[tpais] => Argentina
[tid] => 1
)

[1] => stdClass Object
(
[gnombre] => Grupo A
[tnombre] => TaxiBoys
[tpais] => Argentina
[tid] => 2
)

[2] => stdClass Object
(
[gnombre] => Grupo A
[tnombre] => HIUX
[tpais] => Argentina
[tid] => 3
)

[3] => stdClass Object
(
[gnombre] => Grupo A
[tnombre] => Frequency.KFA
[tpais] => Argentina
[tid] => 4
)

)

[Grupo B] => Array
(
[0] => stdClass Object
(
[gnombre] => Grupo B
[tnombre] => ONLINE
[tpais] => Argentina
[tid] => 5
)

[1] => stdClass Object
(
[gnombre] => Grupo B
[tnombre] => Rov
[tpais] => Argentina
[tid] => 6
)

)

)

)



muchas gracias sr batman
edit: y por supuesto a todos tambien =D
jaaj perdon que no pude ayudar mas =( pero en php ni idea nada jajaajaj
yo te dije que lo hagas de ahi (?)
Todo bien, hay cosas que uno hace y despues le quedan
Te felicito por ser el primero del universo que veo que usa el tag de codigo php
Páginas: 1 2
URLs de referencia