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

Consulta de Union que funciona en servidor Mysql Local pero no en el de Hosting??

Estas en el tema de Consulta de Union que funciona en servidor Mysql Local pero no en el de Hosting?? en el foro de Mysql en Foros del Web. Saludos, Tengo la siguiente consulta que ejecuto en un servidor mysql que tengo en local: Código: SELECT * FROM productos WHERE idc='001' AND idsc='0001' AND ...
  #1 (permalink)  
Antiguo 05/05/2007, 09:53
Avatar de chiviwalker  
Fecha de Ingreso: marzo-2004
Ubicación: Alicante
Mensajes: 55
Antigüedad: 20 años, 1 mes
Puntos: 0
Consulta de Union que funciona en servidor Mysql Local pero no en el de Hosting??

Saludos,
Tengo la siguiente consulta que ejecuto en un servidor mysql que tengo en local:
Código:
SELECT * FROM productos
WHERE idc='001' AND idsc='0001' AND familia='0'
UNION ALL
SELECT * FROM productos
WHERE idc='001' AND idsc='0001' AND familia='1' GROUP BY idfamilia
Esta funciona correctamente (version MySQL 4.1.9-max).

El problema es cuando intento ejecutar esta misma consulta en el servidor mysql del hosting contratado que tengo que me da un error de sintaxis
¿Alguien me puede dar una solución? muchas gracias de antemano (version mysql hosting MySQL 3.23.58)
__________________
------------------------------------------
www.inetmarket.es
  #2 (permalink)  
Antiguo 05/05/2007, 13:07
Avatar de cmarti  
Fecha de Ingreso: noviembre-2003
Ubicación: Buenos Aires - Argentina
Mensajes: 442
Antigüedad: 20 años, 5 meses
Puntos: 1
Re: Consulta de Union que funciona en servidor Mysql Local pero no en el de Hosting??

chiviwalker. Si mal no tengo entendido, la función "UNION" comenzó a utilizarse a partir de la versión 4 de MySQL motivo por el cual y de ser cierto, allí radicaría el problema. Yo acabo de actualizar mi versión 3.23.52 a 5.0.19 pero no si antes cerciorarme de la vigente en el Servidor de Hosting de lo contrario, me ganaría dolores de cabeza gratuitamente. Ahora.....Existen otras maneras de vincular datos pero en tu caso por lo que veo, estás mostrando 3 campos uno de los cuales tiene diferencia. El tema de la unión es más utilizado cuando hablamos de tablas diferentes (no es tu caso) motivo por el cual, yo en tu lugar haría lo siguiente:

SELECT * FROM productos
WHERE idc='001' AND idsc='0001' AND (familia='0' or familia ='1') GROUP BY idfamilia

Consejo: si el campo/columna "familia" será siempre de números, podrías haberlo dejado como numérico de uno entonces esa parte de la sentencia podría haber quedado como ......AND (familia>=0 or familia <2)

Suerte
__________________
When all else is lost the future still remains.

Última edición por cmarti; 05/05/2007 a las 13:15
  #3 (permalink)  
Antiguo 07/05/2007, 02:20
Avatar de chiviwalker  
Fecha de Ingreso: marzo-2004
Ubicación: Alicante
Mensajes: 55
Antigüedad: 20 años, 1 mes
Puntos: 0
Re: Consulta de Union que funciona en servidor Mysql Local pero no en el de Hosting??

Muchas gracias por tu respuesta cmarti, el problema es que en la misma tabla de productos existen productos que no pertenecen a ninguna familia (familia=0) y productos que si pertenecen a una familia (familia=1) y al estar en la misma tabla el campo que determina a que familia pertenecen es el idfamilia, en el caso de que sea familia=1 ese idfamilia tiene un determinado valor pero cuando no pertenecen a una familia es decir familia=0 el idfamilia también es 0 por lo que si ejecuto la clausula sql que me has pasado todos los productos que no pertenecen a una familia saldrán agrupados, de ahi que hiciese un union a la misma tabla.
¿Alguien me puede proponer una solución? muchas gracias de antemano.
__________________
------------------------------------------
www.inetmarket.es
  #4 (permalink)  
Antiguo 07/05/2007, 11:53
Avatar de cmarti  
Fecha de Ingreso: noviembre-2003
Ubicación: Buenos Aires - Argentina
Mensajes: 442
Antigüedad: 20 años, 5 meses
Puntos: 1
Re: Consulta de Union que funciona en servidor Mysql Local pero no en el de Hosting??

chiviwalker Para empezar en tu 1er consulta nada mencionas en cuanto a las diferencias sino únicamente en los campos familia inclusive, no queda claro por qué si el campo idfamilia también establece la diferencia entre pertener y no pertener es decir 0 no pertenece a nadie y distinto de cero pertenece a una familia, tienes además el campo "familia" ?????
Perdona pero no te entiendo lo que quieres y no puedes hacer .. Si me lo permites te sugiero que menciones las particularidades de cada campo y como digo qué necesitas hacer.
Por otro lado puede resultar muy tonto lo que te digo pero '0' y ?null' no es lo mismo verdad??'
__________________
When all else is lost the future still remains.
  #5 (permalink)  
Antiguo 08/05/2007, 10:34
Avatar de chiviwalker  
Fecha de Ingreso: marzo-2004
Ubicación: Alicante
Mensajes: 55
Antigüedad: 20 años, 1 mes
Puntos: 0
Re: Consulta de Union que funciona en servidor Mysql Local pero no en el de Hosting??

Tienes razon cmarti he liado mucho la consulta, te cuento mi problema, tengo una tabla de productos en la que almaceno todos sus datos incluido su id de familia (idfamilia) que esta relacionado con otra tabla que define el nombre de cada familia. Hasta aqui todo bien, pero me encuentro con un problema que es que no todos los productos pertenecen a una familia y por lo tanto ese idfamilia es 0 (o null, es costumbre la mia poner 0 o 1 :) ), entonces cuando agrupo los productos por su id de familia ya que muchos pertenecen a la misma y solo quiero que salga uno de ellos en representacion de todos, los que no tienen familia me muestra solo uno de ellos.
Con este problema se me ocurrio añadir un campo para saber si un producto pertenece o no a una familia el famoso familia que le asigno un valor 0 o 1 en caso afirmativo para poder diferenciar los productos a los que hacer el agrupamiento por idfamilia desechando del agrupamiento los que no pertenezcan a una familia (familia null o 0). Esto con la consulta de UNION me funciona perfectamente y hace lo que yo quiero pero me encontré con el problema del servidor Mysql 3.23 y ahora no se como realizar lo mismo sin el UNION. Espero que me haya explicado bien, muchas gracias por tus contestaciones cmarti.
__________________
------------------------------------------
www.inetmarket.es
  #6 (permalink)  
Antiguo 08/05/2007, 23:37
Avatar de ArrauKano  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago
Mensajes: 664
Antigüedad: 21 años, 5 meses
Puntos: 4
Re: Consulta de Union que funciona en servidor Mysql Local pero no en el de Hosting??

yo haría otra tabla donde guardar el id del producto que encabeza la familia, no se cual es la idea de la aplicación que estas haciendo, pero en mi caso, me gustaría poder cambiar el representante de la familia a mi gusto.

Osea que por defecto, si no tiene familia el producto, que asu vez esté en esta tabla nueva, y si pertenece a una familia, que te permita escodger si mantener el representante anterior o cambiarlo por el nuevo producto.
__________________
Blog | Tecnosquad
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:05.