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

Problema con consulta

Estas en el tema de Problema con consulta en el foro de Mysql en Foros del Web. Hola gente ... les comento un poco mi problema .... Tengo una consulta que me trae algo asi : H_id H_value 1 Britannia 2 82 ...
  #1 (permalink)  
Antiguo 10/01/2009, 17:28
 
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario
Mensajes: 44
Antigüedad: 17 años, 8 meses
Puntos: 0
Problema con consulta

Hola gente ... les comento un poco mi problema ....

Tengo una consulta que me trae algo asi :


H_id H_value

1 Britannia

2 82

3 4 estrellas

... ...


El sistema es de gestion hotelera .....el tema es que los datos de el hotel estan por columnas y no en filas(ni idea por que ..trabajo en una empresa y esta asi)

el numero 82 representa el codigo de la ciudad a la que pertenece el hotel es decir,hay muchos hoteles con ese codigo.... mi pregunta es:

Se puede de alguna forma hacer algo asi(filtrar por ciudad y por nombre del hotel ) : select * from HOTELES where H_VALUE =82 and H_VALUE ='Britannia'


espero que haber sido claro ... espero sus respuestas .. desde ya gracias!!.Saludos
  #2 (permalink)  
Antiguo 10/01/2009, 21:35
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Problema con consulta

La verdad no le entendi la pregunta porque lo que usted pregunta usted mismo se lo respondio.

Ahora no veo en la tabla como se sabe que el hotel britania pertenece a la ciudad 82 y es 4 estrellas osea que hay de comun entre los tres para relacionarlos.

Expliqueme un poco mejor que es loque necesita ahcer y con gusto le ayudo a crear la consulta
  #3 (permalink)  
Antiguo 11/01/2009, 10:57
 
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario
Mensajes: 44
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Problema con consulta

Hola Helacer , perdon por no ser claro ...

lo que necesito es hacer un WHERE ..... la consulta a la que tengo que hacer el WHERE es de este formato:

H_id H_value

1 Britannia

2 82

3 4 estrellas


Espero que salga bien el formato (taba de dos campos H_ID,HVALUE) .. el problema es que no puedo filtrar por codigo de ciudad y por nombre de hotel porque pertenecen a la misma columna es decir : select * from HOTELES where H_VALUE like '%britannia%' and H_VALUE =82 ..... esto es imposible porque es = a britannia o es = a 82 ,pero nunca va a ser igual a los dos ..

Se puede filtrar por codigo de ciudad y al resultado de esa query filtrarlo por nombre de hotel sin recurrir a php ?Gracias denuevo
  #4 (permalink)  
Antiguo 11/01/2009, 12:51
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Usa or

select * from HOTELES where H_VALUE like '%britannia%' OR H_VALUE ='82'
  #5 (permalink)  
Antiguo 11/01/2009, 15:31
 
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario
Mensajes: 44
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Problema con consulta

Gracias jurena .. pero eso no me sirve .. necesitaria traer 1 solo registro ..de esa forma me traeria todos los hoteles con el codigo 82 .. y lo que necesito es un registro q sea de codigo 82 y el nombre del hotel sea igual a algo ..
  #6 (permalink)  
Antiguo 11/01/2009, 22:02
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Problema con consulta

Perdona, no te entendí bien.

SELECT * from HOTELES WHERE H_VALUE LIKE '%britannia%' OR H_VALUE ='82' GROUP BY H_id HAVING COUNT (*) > 1
  #7 (permalink)  
Antiguo 12/01/2009, 07:02
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problema con consulta

Como relacionas los registros de la tabla ?

1 Britannia

2 82

3 4 estrellas

Si estos tres registros definen un hotel -> Britannia, 82, 4 estrellas
algo los tiene que relacionar, ni que sea el hecho de ser consecutivos, lo cual es una aberración des del punto de vista relacional, pero podriamos buscar la forma de resolverlo.

Cita:
...y lo que necesito es un registro q sea de codigo 82 y el nombre del hotel sea igual a algo ...
con lo que nos has contado esto es imposible puesto que en un registro tienes el codigo y en otro el nombre del hotel... luego no exite un registro que tenga los dos valores.... no?

Lo logico seria tener una tabla con la siguiente estructura y datos

id_H::Nombre_H::Codigo_Ciudad::Categoria
::1:::::Britannia:::::::::::::82::::::::::::::4 estrellas

Si los distintos hoteles son, SIEMPRE, grupos de tres y solo tres registros que siguen, SIEMPRE, el mismo orden se podria buscar la forma .. algo como primero obtener el id del codigo de ciudad y luego el id anterior para ver el nombre del hotel siempre que H_Id no tenga saltos.... o buscar la forma de trasponer los registros de tres en tres y obtener la estructura relacional correcta.... pero deberias contarnos algo más...

Quim

Última edición por quimfv; 12/01/2009 a las 07:08
  #8 (permalink)  
Antiguo 12/01/2009, 07:19
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problema con consulta

Releyendo tus post....veo que puesto que el listado que nos muestras dices que es el resultado de una consulta, una cosa que nos podrias contar o mostrar es la sentencia de esa consulta quizas obtenemos alguna pista de la estructura de la tablas subyacentes....

Por cierto saludos y buen año a ti y a Jurena!!!

Quim

Última edición por quimfv; 12/01/2009 a las 08:02
  #9 (permalink)  
Antiguo 12/01/2009, 08:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema con consulta

Cita:
Iniciado por unoencinco Ver Mensaje
Hola Helacer , perdon por no ser claro ...

lo que necesito es hacer un WHERE ..... la consulta a la que tengo que hacer el WHERE es de este formato:

H_id H_value

1 Britannia

2 82

3 4 estrellas


Espero que salga bien el formato (taba de dos campos H_ID,HVALUE) .. el problema es que no puedo filtrar por codigo de ciudad y por nombre de hotel porque pertenecen a la misma columna es decir : select * from HOTELES where H_VALUE like '%britannia%' and H_VALUE =82 ..... esto es imposible porque es = a britannia o es = a 82 ,pero nunca va a ser igual a los dos ..

Se puede filtrar por codigo de ciudad y al resultado de esa query filtrarlo por nombre de hotel sin recurrir a php ?Gracias denuevo
En principio, si los diferentes valores pertenecen a la misma columna, o la tabla está mal construida, o bien nos estás diciendo lo que la aplicación te está mostrando, pero no lo que almacena.
Es absolutamente ineficiente y una falla de diseño grave hacer una tabla que en una sola columna almacene datos que pertenecen a dominios distintos. Algo no está bien en ese modelo.
¿Podrías postear la sentencia de creación de esa tabla, para poder entender a qué nos enfrentamos?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 13/01/2009, 03:00
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Problema con consulta

Estoy con Quim y gnzsoloyo,

Debes hacernos ver la estructura, pues sin eso resulta imposible saberlo bien. Yo pensé que H_id podía repetirse y por eso mi segunda propuesta, pero si se trata de un primary key no podrás encontrar lo que buscas; y si puede repetirse, es decir, se trata de un foreign key, hay algo que está mal, el poner al mismo nivel (en el mismo campo) el nombre y el código. Ya te lo han dicho Quim y gnzsoloyo. No obstante, si se repitiera, podrías encontrarlo con la segunda propuesta que te hice, pero yo te recomendaría que cambiaras la estructura de esa base, como te recomiendan Quim y gnzsoloyo.
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 14:48.