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

INNER JOIN -ese gran desconocido para mi-

Estas en el tema de INNER JOIN -ese gran desconocido para mi- en el foro de Bases de Datos General en Foros del Web. Hola a todos, gracias de antemano. (perdonar mi torpeza con SQL) He creado dos tablas dentro de la misma base de datos: 1º tabla es ...
  #1 (permalink)  
Antiguo 28/12/2009, 10:24
 
Fecha de Ingreso: septiembre-2008
Mensajes: 22
Antigüedad: 15 años, 7 meses
Puntos: 1
INNER JOIN -ese gran desconocido para mi-

Hola a todos, gracias de antemano. (perdonar mi torpeza con SQL)

He creado dos tablas dentro de la misma base de datos:
1º tabla es de productos(aficionado):
Codpro,Nombre,precio
*posee alrededor de 15 productos
2º tabla es de descuentos:
Codpro, codcliente, preciofinal
*tan solo dos productos tienes descuento

Hasta aqui todo bien (creo). Mi intención era crear una consulta donde apareciera en una tabla todos los productos pero además los que tienen descuento.

Bien, realizo la siguiente consulta:

SELECT DISTINCT aficionado.codpro, aficionado.nombre, aficionado.PVC, descuento.PrecioFinal
FROM aficionado INNER JOIN
descuento ON aficionado.codpro = descuento.codpro
WHERE (descuento.idcliente = 123)


Mi problema, solo aparecen los dos que tienen descuento. Me gustaria que saliera una cosa parecida a esto:

Codpro | Nombre | Precio | Precio Final |
55 | 10x15 | 0,50 | |
63 | 13x18 | 0,80 | 0,75 |
..........


No se si me expresado bien, es decir que los productos con precio final se vean, pero los que no tienen precio final también se vean en la tabla.

por favor, si considerais que existe otra forma para organizar mis tablas decirlo. Y sobretodo MUCHAS GRACIAS
  #2 (permalink)  
Antiguo 28/12/2009, 10:28
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: INNER JOIN -ese gran desconocido para mi-

Solo una duda.. como quieres que:
Código Tu consulta:
Ver original
  1. pero los que no tienen precio final también se vean en la tabla

SI el campo no tiene nada,, que quieres que muestre?

Prueba con LEFT JOIN, tal vez sea tu solucion
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #3 (permalink)  
Antiguo 28/12/2009, 10:29
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 9 meses
Puntos: 150
Respuesta: INNER JOIN -ese gran desconocido para mi-

Cuando usas INNER JOIN y uno de los registros de la primera tabla no tiene "correspondencia" con ningun registro de la segunda tabla entonces no recoge ningun dato.

Para esto existe LEFT JOIN, que completara los registros aun no existiendo dicha "correspondencia" al hacer JOIN, pruebalo, es exactamente igual que el INNER.

SAludos & japi crismas
  #4 (permalink)  
Antiguo 28/12/2009, 14:20
 
Fecha de Ingreso: septiembre-2008
Mensajes: 22
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: INNER JOIN -ese gran desconocido para mi-

Gracias de nuevo. Funciona (+-) con LEFT JOIN.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 06:48.