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

Resultados En Duplicados

Estas en el tema de Resultados En Duplicados en el foro de SQL Server en Foros del Web. Realizo una consulta donde busco los hoteles cuya localidad sea la que paso como parámetro desde otra página. He cargado dos hoteles para probar su ...
  #1 (permalink)  
Antiguo 20/12/2006, 05:31
Avatar de jimadri  
Fecha de Ingreso: julio-2006
Ubicación: Buenos Aires
Mensajes: 487
Antigüedad: 17 años, 10 meses
Puntos: 1
Resultados En Duplicados

Realizo una consulta donde busco los hoteles cuya localidad sea la que paso como parámetro desde otra página.
He cargado dos hoteles para probar su funcionamiento y encuetro como resultado que los dos hoteles cargados figuran dos veces por cada categoria.
Entiendese categoria como "1 Estrella", "2 Estrellas", etc.

M cosulta es:

"select * from hotel, categoria, ciudades where cod_ciudad = $id_ciudad and cod_categoria = id_categoria";

Espero me puedan ayudar, desde ya gracias.
  #2 (permalink)  
Antiguo 20/12/2006, 06:22
Avatar de diegopedro  
Fecha de Ingreso: agosto-2006
Ubicación: Santiago
Mensajes: 120
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Resultados En Duplicados

Prueba lo siguiente :

select *
from hotel a
, categoria b
, ciudades c
where a.cod_ciudad = $id_ciudad
and b.cod_categoria = a.id_categoria
and c.cod_ciudad = a.cod_ciudad;
  #3 (permalink)  
Antiguo 20/12/2006, 06:59
Avatar de jimadri  
Fecha de Ingreso: julio-2006
Ubicación: Buenos Aires
Mensajes: 487
Antigüedad: 17 años, 10 meses
Puntos: 1
Re: Resultados En Duplicados

Cual es la finalidad de ponerle una inicial despues del nombre de cada tabla????
Porque sin las iniciales es otra de las formas que probé.
Desde ya agradezco la explicacion

Estoy en linea
  #4 (permalink)  
Antiguo 20/12/2006, 09:36
Avatar de diegopedro  
Fecha de Ingreso: agosto-2006
Ubicación: Santiago
Mensajes: 120
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Resultados En Duplicados

La finalidad de los alias (así son llamados), son para tener un mejor orden, evitas la ambiguedad.
Ejem
Suele ocurrir que en dos tablas tenemos el mismo campo :

Hotel(campo cod_ciudad)
Cuidades(campo cod_ciudad)

select * from hotel, cuidades where cod_ciudad=cod_cuidad


Esto entregara un error de ambiguedad, ya que el motor de base de datos no sabra a que campo accedera si en las dos tablas a buscar se encuentra el mismo campo.

Este es uno de los tantos motivos
__________________
Es facil apretar tornillos, pero lo complejo es saber que tornillo apretar
  #5 (permalink)  
Antiguo 20/12/2006, 09:38
Avatar de diegopedro  
Fecha de Ingreso: agosto-2006
Ubicación: Santiago
Mensajes: 120
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Resultados En Duplicados

En tu caso te esta entregando el resultado total porque declarastes una tabla que no esta siendo relacionada por ningun campo(WHERE)
__________________
Es facil apretar tornillos, pero lo complejo es saber que tornillo apretar
  #6 (permalink)  
Antiguo 21/12/2006, 06:46
Avatar de jimadri  
Fecha de Ingreso: julio-2006
Ubicación: Buenos Aires
Mensajes: 487
Antigüedad: 17 años, 10 meses
Puntos: 1
Re: Resultados En Duplicados

Voy a probar lo que me dices, ademas gracias por la explicacion del error.
Muchas gracias cualquier duda te consulto.
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 15:19.