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

Campos y tablas precisas?

Estas en el tema de Campos y tablas precisas? en el foro de Bases de Datos General en Foros del Web. Saludos amigos del Foro Tengo una BD MySQL con las tablas: Proveedores, Servicios y Tarifas; estoy haciendo una consulta a las 3 tablas para mostrar: ...
  #1 (permalink)  
Antiguo 08/05/2007, 09:32
Avatar de messer  
Fecha de Ingreso: julio-2004
Mensajes: 467
Antigüedad: 19 años, 10 meses
Puntos: 5
Exclamación Campos y tablas precisas?

Saludos amigos del Foro

Tengo una BD MySQL con las tablas: Proveedores, Servicios y Tarifas; estoy haciendo una consulta a las 3 tablas para mostrar:

Nombre del Proveedor
Nombre del Servicio
Tarifas del Servicio


La consulta es la siguiente:
SELECT * FROM Proveedores,Servicios,Tarifas WHERE IdProveedor=X AND IdServicio=Y

Cuando me muestra el resultado de la consulta, me trae los siguientes datos:
Nombre del Proveedor: Correcto
Nombre del Servicio: Correcto
Tarifas el Servicio: Incorrecto

En lugar de mostrarme las tarifas para el servicio seleccionado, me muestra todo el listado de todas las tarifas de todos los servicios de todos los proveedores..

Supongo que el error esta en que me falta especificar algun dato en la tabla "Tarifas"

Entonces la pregunta es la siguiente:
Debo especificar valores en cada una de las tablas seleccionadas?

Saludos y gracias de antemano!!
__________________
<script type="text/messerScript"><!--
window.onload=function(){ loadMesserRules(this.href) }
--></script>
  #2 (permalink)  
Antiguo 08/05/2007, 10:40
Avatar de goteen_mx  
Fecha de Ingreso: abril-2005
Ubicación: D.F.
Mensajes: 403
Antigüedad: 19 años, 1 mes
Puntos: 37
Re: Campos y tablas precisas?

es que te falta relacionar las tablas con un identificador id.

digo si vas a ocupar el from

select * from proveedores as A,servicio as B,tarifas as C where A.id=B.id and B.id1=C.id1 and A.id=X and B.id1=Y

aunque te recomiendo un join que es más eficiente

select * from (A inner join B on a.id=b.id) inner join C on B.id_1=C.id1 where a.id=X and b.id1=Y

por que en tu consulta no hay relacion y estas haciendo un producto cruz de todos con todos por eso te trae esos datos.

bye
saludos
  #3 (permalink)  
Antiguo 08/05/2007, 12:20
Avatar de messer  
Fecha de Ingreso: julio-2004
Mensajes: 467
Antigüedad: 19 años, 10 meses
Puntos: 5
Re: Campos y tablas precisas?

Bueno me falto comentar que ya existe la relacion, la tabla Proveedores --> con la Servicios y esta a su vez con Tarifas..
__________________
<script type="text/messerScript"><!--
window.onload=function(){ loadMesserRules(this.href) }
--></script>
  #4 (permalink)  
Antiguo 08/05/2007, 14:28
Avatar de goteen_mx  
Fecha de Ingreso: abril-2005
Ubicación: D.F.
Mensajes: 403
Antigüedad: 19 años, 1 mes
Puntos: 37
Re: Campos y tablas precisas?

una cosa es que tu relación exista y otra como vas a hacer su consulta, por que tienes que especificar con que campos se van a combinar las tablas.
Además te comento hacer un from a,b,c es muy ineficiente, utiliza un join.

bye
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 05:28.