Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Dois autores para um mesmo livro


marcelo2605

Pergunta

Tenho um banco de dados com três tabelas: livros, autores e aux. Esta última pega o id das duas para unir livros com seus respectivos autores.

Fiz isso para o caso de um livro ter dois ou mais autores.

A consulta que fiz foi:

SELECT autores.autor, livros.titulo
FROM aux, autores, livros
WHERE aux.livros_id = livros.id AND aux.autores_id = autores.id
ORDER BY livros.titulo ASC
O problema é que no caso dois livros com dois autores, ele aparece duas vezes no resultado. Como posso mostrar os dois autores para o mesmo livro? Por ora, estou usando uma tabela simples:
<table border="1" cellpadding="1" cellspacing="1">
  <tr>
    <td>autor</td>
    <td>titulo</td>
  </tr>
  <?php do { ?>
    <tr>
      <td><?php echo $row_rsLivros['autor']; ?></td>
      <td><?php echo $row_rsLivros['titulo']; ?></td>
    </tr>
    <?php } while ($row_rsLivros = mysql_fetch_assoc($rsLivros)); ?>
</table>

Editado por Denis Courcy
Colocar códigos entre codes
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Tenho um banco de dados com três tabelas: livros, autores e aux. Esta última pega o id das duas para unir livros com seus respectivos autores.

Fiz isso para o caso de um livro ter dois ou mais autores.

A consulta que fiz foi:

SELECT autores.autor, livros.titulo
FROM aux, autores, livros
WHERE aux.livros_id = livros.id AND aux.autores_id = autores.id
ORDER BY livros.titulo ASC
O problema é que no caso dois livros com dois autores, ele aparece duas vezes no resultado. Como posso mostrar os dois autores para o mesmo livro? ...
Oi 'marcelo2605', Faça assim:
SELECT l.titulo, GROUP_CONCAT(a.autor SEPARATOR ", ") AS Autores,
FROM livros l
INNER JOIN aux ax ON ax.livros_id = l.id
INNER JOIN autores a ON ax.autores_id = a.id
GROUP BY l.titulo

Link para o comentário
Compartilhar em outros sites

  • 0

Denis, agora deu certo.

SELECT livros.titulo, GROUP_CONCAT(autores.autor SEPARATOR ',') AS Autores
FROM livros INNER JOIN aux ON aux.livros_id = livros.id INNER JOIN autores ON aux.autores_id = autores.id
GROUP BY livros.titulo

Editado por Denis Courcy
Inserção de CODE para o código
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...