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

Cómo resolver este join

Estas en el tema de Cómo resolver este join en el foro de Mysql en Foros del Web. Hola qué tal, quería saber sí me podrían ayudar ya que hace bastante estoy con esta consulta que no me sale, ya que me repite ...
  #1 (permalink)  
Antiguo 14/07/2011, 18:09
 
Fecha de Ingreso: febrero-2011
Mensajes: 6
Antigüedad: 13 años, 2 meses
Puntos: 0
Cómo resolver este join

Hola qué tal, quería saber sí me podrían ayudar ya que hace bastante estoy con esta consulta que no me sale, ya que me repite los datos:

Tengo 3 tablas:

Producto ---->idProducto, Nombre

Descripcones ----> idDescripcion, Descripciones (en una relación, 1 producto muchas descripciones)

Cantidades ----> idCantidad, Cantidades (en una relación, 1 producto muchas cantidades)

Este es el query:

Código PHP:
<?$result mysql_query("SELECT p1.Nombre as Nombrepro,  d1.Descripciones as Descripciones, 
c1.Cantidades as Cantidades FROM producto as p1
INNER JOIN descripciones as d1 ON idProducto = Producto_idProducto
INNER JOIN cantidades as c1 ON p1.idProducto = c1.Producto_idProducto"
$link) or die (mysql_error($link));

$producto="0"
 
while (
$r=mysql_fetch_array($result)) {
         if (
$producto!=$r["Nombrepro"])  {   ?>  
         
         <?=$r["Nombrepro"];?>

<?php
           $producto
=$r["Nombrepro"];////Paso el primer producto a la variable de control para evitar repeticiones hasta que aparezca el segundo
            
}

?>
        
            <td class="descripciones" colspan="2">
                <p> <?=$r["Descripciones"]?></p>

               <td class="cantidades" colspan="2">
                <p> <?=$r["Cantidades"]?></p>
        
<?php

?>

El condicional es para que no me repita el producto. Antes cuando sólo hacía la consulta salía todo bien porque no me repetía las descripciones, el tema es que ahora que agregué a la consulta la tabla "cantidades", me repite las descripciones por cada valor de "cantidades" , es decir, sí en "cantidades" tengo los valores 10, 20, 30, 40, para el producto 1, me pasa esto :

Código PHP:

Descripcion
:           Cantidades:
Buen Manejo            10
Buena memoria          10
Buena reaccion         10
Buen Manejo            20
Buena memoria          20
Buena reaccion         20
Buen Manejo            30
Buena memoria          30
Buena reaccion         30
Buen Manejo            40
Buena memoria          40
Buena reaccion         40 

Hay alguna manera de que no me relacione la tabla "descripciones" con la tabla "cantidades" y que me muestre los valores sin repetir ? Es decir:

Código PHP:

Descripcion
:           Cantidades:
Buen Manejo            10
Buena memoria          20
Buena reaccion         30
                       40 
Espero me puedan ayudar ya que me estoy volviendo bastante loco, gracias.
  #2 (permalink)  
Antiguo 15/07/2011, 00:42
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Cómo resolver este join

Investiga la sentencia LEFT JOIN
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: php
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:29.