Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: Algotrix en 15 Marzo 2011, 00:27 am



Título: Consulta SQL
Publicado por: Algotrix en 15 Marzo 2011, 00:27 am
Buenas Noches,

Quisiera ver si me aclaran este error que tengo, estoy haciendo una consulta de SQL contra unas tablas de una base de datos todo va bien hasta la hora de dicha consulta. El problemas es que me genera la consulta pero me sigue llamando mas y mas datos.

Sentencia

select c.NombreCompañía, e.Nombre +'  '+ e.Apellidos as Empleado, pe.FechaPedido, pr.PrecioUnidad
From Clientes as c
join Empleados as e on Nombre = e.Nombre
join Pedidos as pe on fechaPedido = pe.fechaPedido
join Productos as pr on PrecioUnidad = pr.PrecioUnidad

Si alguien ve un error o porque la razon de esa seleccion tan larga.  :huh:


Título: Re: Consulta SQL
Publicado por: Shell Root en 15 Marzo 2011, 00:29 am
Emmm quizás te falte el WHERE. Sólo quieres 1 dato, verdad?


Título: Re: Consulta SQL
Publicado por: Algotrix en 15 Marzo 2011, 00:34 am
Emmm quizás te falte el WHERE. Sólo quieres 1 dato, verdad?

Tienes razon, ahora mismo lo agrege... pero no encuentro la forma de filtrar con exito... quiero todos los campos disponibles de clientes sin que se repitan.


Título: Re: Consulta SQL
Publicado por: Shell Root en 15 Marzo 2011, 00:47 am
No entiendo tú consulta. :/
Porque mejor no unes las tablas con el ID RELACIONADO


Título: Re: Consulta SQL
Publicado por: oxem.es en 15 Marzo 2011, 00:52 am
Lo primero es relacionar las tablas entre sí, sino te mostrará todos los datos mezclados con todos. Viendo tus tablas lo lógico es que hayas creado una id única en la tabla pedidos, y hayas creado campos con la id de cada empleado y cliente.

¿Cuál/es campo/s las ralaciona entre sí?

PD: Estaría bien que pusieses un ejemplo de la tabla que tienes y el resultado que quisieses que te mostrase la consulta.


Título: Re: Consulta SQL
Publicado por: Algotrix en 15 Marzo 2011, 01:29 am
Disculpen si me mal entiendo, lo que pasa es que esas seleccion me atre mas de 500mil resultados y no puede ser asi porque solo son 91 clientes... :S por eso digo a ver donde esta mi error


Título: Re: Consulta SQL
Publicado por: Shell Root en 15 Marzo 2011, 01:34 am
Pero quizás se repitan, consulta sobre GROUP BY -creo que es así-


Título: Re: Consulta SQL
Publicado por: oxem.es en 15 Marzo 2011, 01:45 am
Citar
me atre mas de 500mil resultados y no puede ser asi porque solo son 91 clientes...

A ver, si no relacionas las tablas, por cada fila de cliente hace una subconsulta de las demas tablas (consultando las demas tablas ENTERAS con cada cliente)

es decir, los resultados serán:

91 filas X nº de filas de los empleados X el numero de filas de pedidos X ... = 500mil resultados

Busca campos comunes y relaciona las tablas.


Título: Re: Consulta SQL
Publicado por: Algotrix en 15 Marzo 2011, 04:38 am
A ver, si no relacionas las tablas, por cada fila de cliente hace una subconsulta de las demas tablas (consultando las demas tablas ENTERAS con cada cliente)

es decir, los resultados serán:

91 filas X nº de filas de los empleados X el numero de filas de pedidos X ... = 500mil resultados

Busca campos comunes y relaciona las tablas.

Tenias razon, me costo algo de tiempo entenderlo pero tu forma de clararme las cosas funciono muchas gracias y tambien gracias a ti shell root  :D