Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Dois autores para um mesmo livro


marcelo2605

Question

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>

Edited by Denis Courcy
Colocar códigos entre codes
Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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

Edited by Denis Courcy
Inserção de CODE para o código
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...