[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