【发布时间】:2016-02-21 16:55:01
【问题描述】:
我无法弄清楚如何从 JOIN 中捕获多个值。应该没那么难,但不知怎的,我不记得如何做到这一点了。
Authors:
id | authorname
Books
id ] authorid |bookname
SELECT a.*,b.*
FROM authors `a`
LEFT JOIN books `b`
ON a.id = b.authorid
WHERE a.id = 1
GROUP BY a.id
这只是返回作者的第一本书,而不是全部。
这不是整个查询,因为还有一些其他事情正在进行,例如出版商、最后订购等,因此我想按作者对其进行分组。此外,响应被 JSON 编码并发送到应用程序。出于这个原因,如果可能的话,我不希望查询返回每本书的行,因为这会使 jsonencoding 和 api 变得复杂。
我只是想弄清楚如何捕获作者的多本书并将它们保存在某种数组中,以便以后可以对其进行解码。
感谢您提供有关正确方法的任何想法。
编辑:
解决了 group_concat(b.bookname) 为 book names, ...
这会将多个值放在一个逗号分隔的列表中。
【问题讨论】:
-
松开 GROUP BY 看看有什么作用
-
它打印出每本书的记录。它确实获得了所有书籍,但记录不再与作者相对应,这是一个作者页面(列出了该作者的书籍。)