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

consulta con 3 tablas

Estas en el tema de consulta con 3 tablas en el foro de Mysql en Foros del Web. Buenas, tengo una base de datos hecha con mysql y tengo 3 tablas: Articulo: nombre del articulo, etc Marca: nombre de la marca, etc. Tipo ...
  #1 (permalink)  
Antiguo 14/10/2005, 06:31
 
Fecha de Ingreso: septiembre-2005
Ubicación: Vejer de la Fra, Cádiz
Mensajes: 83
Antigüedad: 18 años, 7 meses
Puntos: 0
consulta con 3 tablas

Buenas, tengo una base de datos hecha con mysql y tengo 3 tablas:

Articulo:

nombre del articulo, etc

Marca:

nombre de la marca, etc.

Tipo de articulo:

tipo del articulo, es decir, si el articulo fuese un monitor, el tipo seria CRT, TFT, etc.

pues bien, necesito hacer una consulta sabiendo 2 parametros, es decir, me gustaria que me salieran en la consulta los articulos que fueran de una marca determinada (HP) y que ademas fueran de un tipo determinado (Multifuncion).

Yo he hecho la consulta, pero me da un problema y es que me repite los articulos, es decir, que en una consulta donde deberia de haber 5 articulos, me salen 15 repitiendome 3 veces cada articulo.

Espero que alguien me pueda ayudar y gracias a todos.
  #2 (permalink)  
Antiguo 14/10/2005, 08:14
 
Fecha de Ingreso: julio-2005
Ubicación: Mexico
Mensajes: 140
Antigüedad: 18 años, 9 meses
Puntos: 0
Hola, necesito ver la consulta, pero de entrada me parece que:

1. Si necesitas hacer algun calculo con los tres articulos que te salen y convertirlo en uno solo usa GROUP BY.

2. Si no necesitas hacer ningun calculo entonces utiliza DISTINCT

3. Cabe la posibilidad de que NO estes haciendo bien los JOIN.

Si esto no resuelve tu problema mejor envia la consulta para verla. Te veo luego
  #3 (permalink)  
Antiguo 14/10/2005, 08:47
 
Fecha de Ingreso: septiembre-2005
Ubicación: Vejer de la Fra, Cádiz
Mensajes: 83
Antigüedad: 18 años, 7 meses
Puntos: 0
Gracias por responderme. Esta es la consulta que yo hago:

Cita:
SELECT articulo.nom_art, articulo.precio_art, articulo.foto_art
FROM articulo, tipo_art, marca
WHERE ((tipo_art.nom_tip = 'Multifuncion') AND
(tipo_art.cod_tip = articulo.cod_tip) AND
(articulo.cod_marc = marca.cod_marc) AND
(marca.nom_marc = 'HP'))
ORDER BY `nom_art` ASC
En principio parece que esa bien, es mas, si la consulta la genero a traves de phpmyadmin, sale perfecta, pero el problema esta al hacer la consulta en la web a traves de php. Supongo que phpmyadmin añadira algo al hacer la consulta, pero no lo se. Gracias de nuevo.
  #4 (permalink)  
Antiguo 17/10/2005, 11:04
 
Fecha de Ingreso: julio-2005
Ubicación: Mexico
Mensajes: 140
Antigüedad: 18 años, 9 meses
Puntos: 0
Hola, la consulta parece estar bien. Vamos pues a depurarla:

1. Manda imprimir tu consulta desde php con un echo, copiala al portapapeles
2. Yo desconozco el phpmyadmin, pero supongo que tiene una opcion para intrducir una consulta, pega ahi la consulta que copiaste.
3. ¿ que optienes ?
  #5 (permalink)  
Antiguo 17/10/2005, 16:43
 
Fecha de Ingreso: septiembre-2005
Ubicación: Vejer de la Fra, Cádiz
Mensajes: 83
Antigüedad: 18 años, 7 meses
Puntos: 0
Dioooooooooooooooosssssssssssssssssssssssssss, disculpame, pero todo esto era un fallo de programacion en php, no tenia nada q ver con la consulta, lo siento de veras y gracias por contestarme.

A ver si me puedes ayudar con una consulta que no se hacer, y es q me muestre la diferencia de la suma de dos columnas de dos tablas diferentes, es decir:

Tabla gastos:

Gastos

Tabla Ingresos:

Ingresos

me gustaria sacar los beneficios de estas tablas, lo que hago es, para sacar la suma de la columna es lo siguiente:

select sum(ingresos) from ingresos

¿¿¿pero se podria hacer una consulta que diera la diferencia de estas 2 sumas???, yo lo he hecho de la siguiente manera, pero no funciona:

"select ((sum(ingresos.ingresos)) - (sum(gastos.gastos))) from ingresos, gastos"

Gracias de nuevo y perdona las molestias
  #6 (permalink)  
Antiguo 19/10/2005, 10:00
 
Fecha de Ingreso: julio-2005
Ubicación: Mexico
Mensajes: 140
Antigüedad: 18 años, 9 meses
Puntos: 0
No funciona porque las tablas no estan relacionadas. Siempre te va a dar cantidades erroneas. Este calculo debe hacerse por separado dos consultas, y despues una resta con PHP.
  #7 (permalink)  
Antiguo 19/10/2005, 10:02
 
Fecha de Ingreso: julio-2005
Ubicación: Mexico
Mensajes: 140
Antigüedad: 18 años, 9 meses
Puntos: 0
Las consultas se hacen por separado y luego se restan con PHP
  #8 (permalink)  
Antiguo 19/10/2005, 15:30
 
Fecha de Ingreso: septiembre-2005
Ubicación: Vejer de la Fra, Cádiz
Mensajes: 83
Antigüedad: 18 años, 7 meses
Puntos: 0
ok, muchas gracias por tu ayuda, he separado las consultas y he restado sus resultados.
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 00:22.