[Php-avanzado] Consulta SQL

Fernando Pehuén Borsani fpborsani en yahoo.com.ar
Mie Feb 5 17:22:09 ART 2014


Bueno, ya lo resolví, pero no SQL, sino con PHP-
Por si le sirve a alguno más les paso que hice:

tabla = array();
$i=0;

while ($fila = mysqli_fetch_assoc($consultado))
{
    if ($i == 0)
    {
        $linea = array( 'codigo'  => $fila['codigo'], 'editorial' =>
$fila['editorial'], 'titulo' => $fila['titulo'], 'autores' =>
$fila['autores']);
        $tabla[$i] = $linea;
        $i++;
    }
    else
    {
        if ($tabla[$i - 1]['codigo'] !== $fila['codigo'])
        {
            $linea = array( 'codigo'  => $fila['codigo'], 'editorial' =>
$fila['editorial'], 'titulo' => $fila['titulo'], 'autores' =>
$fila['autores']);
            $tabla[$i] = $linea;
            $i++;
        }
        else
        {
            $tabla[$i - 1]['autores'] .= ' -- ' . $fila['autores'];
        }
    }
}

-----Mensaje original-----
De: php-avanzado-bounces en pato2.fi.mdp.edu.ar
[mailto:php-avanzado-bounces en pato2.fi.mdp.edu.ar] En nombre de Fernando
Pehuén Borsani
Enviado el: miércoles, 05 de febrero de 2014 02:22 p.m.
Para: Php-avanzado en pato2.fi.mdp.edu.ar
Asunto: [Php-avanzado] Consulta SQL

Estoy escribiendo el ABML de la biblioteca, y tengo un problema. Cuando
quiero listar los libros se duplican algunas filas porque tienen más de un
autor.
La consulta que estoy realizando es:

SELECT libros.codigo, editoriales.editorial, libros.titulo, CONCAT_WS(',
',autores.apellido,autores.nombre) as autores FROM libros INNER JOIN
editoriales ON libros.idEditorial = editoriales.idEditorial INNER JOIN
autores_libros ON libros.idLibro = autores_libros.idLibro INNER JOIN autores
ON autores_libros.idAutor = autores.idAutor ORDER BY libros.codigo;

Y el resultado devuelto es del tipo:

Código                  editorial         titulo
autores 	
9788498003611    Nova            El fin de la eternidad     Asimov,  Isaac
9789875665293    Alfaguaga   Anochecer                       Asimov,  Isaac
9789875665293    Alfaguaga   Anochecer                       Silverberg,
Robert

Como se puede ver, el libro "Anochecer" aparece dos veces porque tiene dos
autores.
¿Se puede evitar con una instrucción en la consulta?

Yo quisiera obtener algo como esto:

Código                  editorial         titulo
autores 	
9788498003611    Nova            El fin de la eternidad     Asimov,  Isaac
9789875665293    Alfaguaga   Anochecer                       Asimov,  Isaac;
Silverberg, Robert

_______________________________________________
Lista de correo: Php-avanzado
Mensajes a la lista: Php-avanzado en pato2.fi.mdp.edu.ar Administración Web:
http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
Desubscripción: php-avanzado-request en pato2.fi.mdp.edu.ar?subject=unsubscribe



Más información sobre la lista de distribución Php-avanzado