Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/11/2010, 10:51
Silver
 
Fecha de Ingreso: noviembre-2001
Ubicación: México DF
Mensajes: 128
Antigüedad: 22 años, 4 meses
Puntos: 0
Pregunta Ayudita con un query

Hola amigos, ante todo un saludo.

Dentro de la estructura de datos de mi proyecto tengo las siguientes tablas:

datagroups
- iddatagroup, int
- datagroup, varchar(50)
- year, int

data
- iddata, int
- value, float
- datagroupid, int
- categoryid, int

categories
- idcategory, int
- category, varchar(30)
- code, varchar(5)

Un "datagroup" tiene muchos "data" y cada "data" pertenece a una "category".

En un formulario se muestra una lista de checkboxes, cada uno de los cuales devuelve una categoría, por lo que al hacer el submit tengo la lista de las categorías que quiere el cliente.

¿Cómo hacer un select que cargue la información sólo de las categorías seleccionadas?

Actualmente tengo esto, pero es muy lento cuando selecciono más de 10 categorías:
Código PHP:
for ($i 0$i $total_cat$i++) {
     if (
$i != 0
          
$tmpSQL .= " UNION ";
     
$tmpSQL .= "(SELECT * FROM `datagroups` dg
          LEFT JOIN `datas` d ON d.`datagroupid` = dg.`iddatagroup`
          LEFT JOIN `categories` c ON c.`idcategory` = d.`categoryid`"
;
          
WHERE c.`code` = '" . trim($_POST['codecat_' . $i]) . "')";
}
$tmpSQL .= " 
ORDER BY `iddatagroup`,`idcategory`"; 
Quisiera lograr el mismo resultado, pero sin usar "UNION".
Alguna sugerencia?

Saludos!!!!
__________________
Nuedi Servicios SA de CV
http://www.nuedi.mx